diff --git a/.gitattributes b/.gitattributes
index 5aec15cd..39d53163 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -19,8 +19,10 @@
*.inf text eol=crlf
*.inx text eol=crlf
*.js text eol=crlf
+*.json text eol=crlf
*.jsproj text eol=crlf
*.rc text eol=crlf
+*.resjson text eol=crlf
*.rgs text eol=crlf
*.sln text eol=crlf
*.vcxproj text eol=crlf
diff --git a/README.md b/README.md
index 37876aae..4b4ce0dc 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,9 @@
# Universal Windows app samples
+
This repo contains the samples that demonstrate the API usage patterns for the Universal Windows Platform (UWP) in the Windows Software Development Kit (SDK) for Windows 10. These code samples were created with the Universal Windows templates available in Visual Studio, and are designed to run on desktop, mobile, and future devices that support the Universal Windows Platform.
## Universal Windows Platform development
+
These samples require Visual Studio 2015 and the Windows Software Development Kit (SDK) for Windows 10 to build, test, and deploy your Universal Windows apps.
[Get a free copy of Visual Studio 2015 Community Edition with support for building Universal Windows apps](http://go.microsoft.com/fwlink/?LinkID=280676)
@@ -11,17 +13,30 @@ Additionally, to stay on top of the latest updates to Windows and the developmen
[Become a Windows Insider](https://insider.windows.com/)
## Using the samples
-The easiest way to use these samples without using Git is to download the zip file containing the current version (using the link below or by clicking the "Download ZIP" button on the repo page). You can then unzip the samples and use them in Visual Studio 2015.
+
+The easiest way to use these samples without using Git is to download the zip file containing the current version (using the link below or by clicking the "Download ZIP" button on the repo page). You can then unzip the entire archive and use the samples in Visual Studio 2015.
[Download the samples ZIP](../../archive/master.zip)
+ **Notes:**
+ * Before you unzip the archive, right-click it, select Properties, and then select Unblock.
+ * Be sure to unzip the entire archive, and not just individual samples. The samples all depend on the SharedContent folder in the archive.
+ * In Visual Studio 2015, the platform target defaults to ARM, so be sure to change that to x64 or x86 if you want to test on a non-ARM device.
+
The samples use Linked files in Visual Studio to reduce duplication of common files, including sample template files and image assets. These common files are stored in the SharedContent folder at the root of the repository and referred to in the project files using links.
+**Reminder:** If you unzip individual samples, they will not build due to references to other portions of the ZIP file that were not unzipped. You must unzip the entire archive if you intend to build the samples.
+
For more info about the programming models, platforms, languages, and APIs demonstrated in these samples, please refer to the guidance, tutorials, and reference topics provided in the Windows 10 documentation available in the [Windows Developer Center](https://dev.windows.com). These samples are provided as-is in order to indicate or demonstrate the functionality of the programming models and feature APIs for Windows.
## Contributions
+
These samples are direct from the feature teams and we welcome your input on issues and suggestions for new samples. At this time we are not accepting new samples from the public, but check back here as we evolve our contribution model.
+## See also
+
+For additional Windows samples, see [Windows on GitHub](http://microsoft.github.io/windows/).
+
## Samples by category
@@ -212,10 +228,10 @@ These samples are direct from the feature teams and we welcome your input on iss
Accelerometer
Activity detection sensor
- AllJoyn consumer experiences
+ AllJoyn Consumer experiences
- AllJoyn producer experiences
+ AllJoyn Producer experiences
Altimeter
Background sensors
@@ -334,7 +350,7 @@ These samples are direct from the feature teams and we welcome your input on iss
Identity, security, and encryption
- Account picture name
+ User information
Credential locker
Credential picker
@@ -376,11 +392,12 @@ These samples are direct from the feature teams and we welcome your input on iss
Navigation
+ Back Button
Master/detail
Pivot
- Projection
+ Projection
XAML navigation menu
XHR, handling navigation errors, and URL schemes
@@ -451,7 +468,7 @@ These samples are direct from the feature teams and we welcome your input on iss
Tiles, toasts, and notifications
- Badge
+ Notifications
Secondary tiles
\ No newline at end of file
diff --git a/Samples/Accelerometer/README.md b/Samples/Accelerometer/README.md
index 4c5b435a..fc88df7d 100644
--- a/Samples/Accelerometer/README.md
+++ b/Samples/Accelerometer/README.md
@@ -1,4 +1,4 @@
-
@@ -54,9 +54,10 @@ When you choose the **Enable** button for the **Data Events** option, the app be
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AccountPictureName/README.md b/Samples/AccountPictureName/README.md
deleted file mode 100644
index 789d459b..00000000
--- a/Samples/AccountPictureName/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-
-# Account picture name sample
-
-This sample demonstrates different ways of getting the name of the user that is currently logged in. It also demonstrates how to get and set the image used for the user's tile.
-
-Specifically, this sample demonstrates the following scenarios:
-
-- How to get the [**DisplayName**](http://msdn.microsoft.com/library/windows/apps/hh921595) for the current logged on user.
-- How to get the first and last name for the current logged on user. (This is available only for Microsoft accounts. An empty string is returned if a Microsoft account is not available.)
-- How to obtain the logged on user's account picture as a bitmap. You can get request three different types: small, large, and video. If the size that is requested is not available an empty file is returned.
-- How to set the account picture for the currently logged on user. You can set three different types: small, large, and video. (More than one type can be set in the same call, but a small image must be accompanied by a large image and/or video.)
-- How to register for a change event for account picture updates.
-
-**Note** The Universal Windows app samples require Visual Studio 2015 to build and Windows 10 to execute.
-
-To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.com/fwlink/?LinkID=532421)
-
-To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-
-## Related topics
-
-### Reference
-
-[**Windows.System.UserProfile** namespace](http://msdn.microsoft.com/library/windows/apps/br241881)
-
-## System requirements
-
-**Client:** Windows 10
-
-**Server:** Windows Server 2016 Technical Preview
-
-**Phone:** Not supported
-
-## Build the sample
-
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-
-## Run the sample
-
-The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
-
-### Deploying the sample
-
-- Select Build > Deploy Solution.
-
-### Deploying and running the sample
-
-- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.
-
diff --git a/Samples/AccountPictureName/cpp/GetAccountPicture.xaml.cpp b/Samples/AccountPictureName/cpp/GetAccountPicture.xaml.cpp
deleted file mode 100644
index 6570deef..00000000
--- a/Samples/AccountPictureName/cpp/GetAccountPicture.xaml.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "GetAccountPicture.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace concurrency;
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::Storage;
-using namespace Windows::Storage::Streams;
-using namespace Windows::System::UserProfile;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Media::Imaging;
-using namespace Windows::UI::Xaml::Navigation;
-
-GetAccountPicture::GetAccountPicture() : rootPage(MainPage::Current)
-{
- InitializeComponent();
-}
-
-void GetAccountPicture::GetSmallImageButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- HideImageAndVideoControls();
-
- if (UserInformation::NameAccessAllowed)
- {
- auto smallImageFile = UserInformation::GetAccountPicture(AccountPictureKind::SmallImage);
- if (smallImageFile != nullptr)
- {
- rootPage->NotifyUser("Path = " + smallImageFile->Path, NotifyType::StatusMessage);
- create_task(smallImageFile->OpenReadAsync()).then(
- [this](task imageStreamTask)
- {
- try
- {
- auto imageStream = imageStreamTask.get();
- auto bitmapImage = ref new BitmapImage();
- bitmapImage->SetSource(imageStream);
- SmallImage->Source = bitmapImage;
- SmallImage->Visibility = Windows::UI::Xaml::Visibility::Visible;
- }
- catch (Exception^ ex)
- {
- rootPage->NotifyUser("Error opening stream: " + ex->Message, NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("Small account picture is not available.", NotifyType::ErrorMessage);
- }
- }
- else
- {
- rootPage->NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
-}
-
-void GetAccountPicture::GetLargeImageButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- HideImageAndVideoControls();
-
- if (UserInformation::NameAccessAllowed)
- {
- auto largeImageFile = UserInformation::GetAccountPicture(AccountPictureKind::LargeImage);
- if (largeImageFile != nullptr)
- {
- rootPage->NotifyUser("Path = " + largeImageFile->Path, NotifyType::StatusMessage);
- create_task(largeImageFile->OpenReadAsync()).then(
- [this](task imageStreamTask)
- {
- try
- {
- auto imageStream = imageStreamTask.get();
- auto bitmapImage = ref new BitmapImage();
- bitmapImage->SetSource(imageStream);
- LargeImage->Source = bitmapImage;
- LargeImage->Visibility = Windows::UI::Xaml::Visibility::Visible;
- }
- catch (Exception^ ex)
- {
- rootPage->NotifyUser("Error opening stream: " + ex->Message, NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("No large account picture image returned for current user.", NotifyType::ErrorMessage);
- }
- }
- else
- {
- rootPage->NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
-}
-
-void GetAccountPicture::GetVideoButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- HideImageAndVideoControls();
-
- if (UserInformation::NameAccessAllowed)
- {
- auto videoFile = UserInformation::GetAccountPicture(AccountPictureKind::Video);
- if (videoFile != nullptr)
- {
- rootPage->NotifyUser("Path = " + videoFile->Path, NotifyType::StatusMessage);
- create_task(videoFile->OpenReadAsync()).then(
- [this](task videoStreamTask)
- {
- try
- {
- auto videoStream = videoStreamTask.get();
- MediaPlayer->SetSource(videoStream, "video/mp4");
- MediaPlayer->Visibility = Windows::UI::Xaml::Visibility::Visible;
- }
- catch (Exception^ ex)
- {
- rootPage->NotifyUser("Error opening stream: " + ex->Message, NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("Video is not available.", NotifyType::ErrorMessage);
- }
- }
- else
- {
- rootPage->NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
-}
-
-void GetAccountPicture::HideImageAndVideoControls()
-{
- SmallImage->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
- LargeImage->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
- MediaPlayer->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
-}
diff --git a/Samples/AccountPictureName/cpp/GetAccountPicture.xaml.h b/Samples/AccountPictureName/cpp/GetAccountPicture.xaml.h
deleted file mode 100644
index 0d6ad31b..00000000
--- a/Samples/AccountPictureName/cpp/GetAccountPicture.xaml.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-
-#include "GetAccountPicture.g.h"
-#include "MainPage.xaml.h"
-
-namespace SDKTemplate
-{
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class GetAccountPicture sealed
- {
- public:
- GetAccountPicture();
- private:
- MainPage^ rootPage;
- void GetSmallImageButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void GetLargeImageButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void GetVideoButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void HideImageAndVideoControls();
- };
-}
diff --git a/Samples/AccountPictureName/cpp/GetUserDisplayName.xaml.cpp b/Samples/AccountPictureName/cpp/GetUserDisplayName.xaml.cpp
deleted file mode 100644
index ecc0c71d..00000000
--- a/Samples/AccountPictureName/cpp/GetUserDisplayName.xaml.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "GetUserDisplayName.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace concurrency;
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::System::UserProfile;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-GetUserDisplayName::GetUserDisplayName() : rootPage(SDKTemplate::MainPage::Current)
-{
- InitializeComponent();
-}
-
-void GetUserDisplayName::GetDisplayNameButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- if (UserInformation::NameAccessAllowed)
- {
- create_task(UserInformation::GetDisplayNameAsync()).then([this](String^ displayName)
- {
- if (displayName != nullptr)
- {
- rootPage->NotifyUser("Display name = " + displayName, NotifyType::StatusMessage);
- }
- else
- {
- rootPage->NotifyUser("No display name was returned.", NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("Access to name disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
-}
diff --git a/Samples/AccountPictureName/cpp/GetUserFirstAndLastName.xaml.cpp b/Samples/AccountPictureName/cpp/GetUserFirstAndLastName.xaml.cpp
deleted file mode 100644
index d1fa5cda..00000000
--- a/Samples/AccountPictureName/cpp/GetUserFirstAndLastName.xaml.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "GetUserFirstAndLastName.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace concurrency;
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::System::UserProfile;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-GetUserFirstAndLastName::GetUserFirstAndLastName() : rootPage(MainPage::Current)
-{
- InitializeComponent();
-}
-
-void GetUserFirstAndLastName::GetFirstNameButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- if (UserInformation::NameAccessAllowed)
- {
- create_task(UserInformation::GetFirstNameAsync()).then([this](String^ firstName)
- {
- if (firstName != nullptr)
- {
- rootPage->NotifyUser("First name = " + firstName, NotifyType::StatusMessage);
- }
- else
- {
- rootPage->NotifyUser("No first name was returned.", NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("Access to name disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
-}
-
-void GetUserFirstAndLastName::GetLastNameButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- if (UserInformation::NameAccessAllowed)
- {
- create_task(UserInformation::GetLastNameAsync()).then([this](String^ lastName)
- {
- if (lastName != nullptr)
- {
- rootPage->NotifyUser("Last name = " + lastName, NotifyType::StatusMessage);
- }
- else
- {
- rootPage->NotifyUser("No last name was returned.", NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("Access to name disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
-}
diff --git a/Samples/AccountPictureName/cpp/GetUserFirstAndLastName.xaml.h b/Samples/AccountPictureName/cpp/GetUserFirstAndLastName.xaml.h
deleted file mode 100644
index c337a2bb..00000000
--- a/Samples/AccountPictureName/cpp/GetUserFirstAndLastName.xaml.h
+++ /dev/null
@@ -1,29 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#pragma once
-
-#include "GetUserFirstAndLastName.g.h"
-#include "MainPage.xaml.h"
-
-namespace SDKTemplate
-{
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class GetUserFirstAndLastName sealed
- {
- public:
- GetUserFirstAndLastName();
- private:
- MainPage^ rootPage;
- void GetFirstNameButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void GetLastNameButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- };
-}
diff --git a/Samples/AccountPictureName/cpp/SampleConfiguration.cpp b/Samples/AccountPictureName/cpp/SampleConfiguration.cpp
deleted file mode 100644
index a28a9369..00000000
--- a/Samples/AccountPictureName/cpp/SampleConfiguration.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-#include "SampleConfiguration.h"
-
-using namespace SDKTemplate;
-using namespace Platform;
-using namespace Windows::ApplicationModel;
-using namespace Windows::ApplicationModel::Activation;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Interop;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-Platform::Array^ MainPage::scenariosInner = ref new Platform::Array
-{
- { "Get display name", "SDKTemplate.GetUserDisplayName" },
- { "Get first and last name", "SDKTemplate.GetUserFirstAndLastName" },
- { "Get account picture", "SDKTemplate.GetAccountPicture" },
- { "Set account picture and listen for changes", "SDKTemplate.SetAccountPicture" }
-};
-
-void App::OnActivated(IActivatedEventArgs^ args)
-{
- // Check to see if the app was activated via a protocol
- if (args->Kind == ActivationKind::Protocol)
- {
- auto protocolArgs = safe_cast(args);
- if (protocolArgs->Uri->SchemeName->Equals("ms-accountpictureprovider"))
- {
- if (Window::Current->Content == nullptr)
- {
- auto rootFrame = ref new Frame();
- TypeName pageType = { "SDKTemplate.MainPage", TypeKind::Custom };
- rootFrame->Navigate(pageType);
- Window::Current->Content = rootFrame;
- Window::Current->Activate();
- }
-
- MainPage::Current->NavigateToScenario("SDKTemplate.SetAccountPicture");
- }
- }
-}
diff --git a/Samples/AccountPictureName/cpp/SetAccountPicture.xaml.cpp b/Samples/AccountPictureName/cpp/SetAccountPicture.xaml.cpp
deleted file mode 100644
index 4b565f9f..00000000
--- a/Samples/AccountPictureName/cpp/SetAccountPicture.xaml.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-#include "pch.h"
-#include "SetAccountPicture.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace concurrency;
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::Storage;
-using namespace Windows::Storage::Streams;
-using namespace Windows::Storage::Pickers;
-using namespace Windows::System::UserProfile;
-using namespace Windows::UI::Core;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Media::Imaging;
-using namespace Windows::UI::Xaml::Navigation;
-
-SetAccountPicture::SetAccountPicture() : rootPage(MainPage::Current)
-{
- InitializeComponent();
-}
-
-void SetAccountPicture::OnNavigatedTo(NavigationEventArgs^ e)
-{
- accountPictureChangedToken = UserInformation::AccountPictureChanged += ref new EventHandler(this, &SetAccountPicture::PictureChanged);
-}
-
-void SetAccountPicture::OnNavigatedFrom(NavigationEventArgs^ e)
-{
- UserInformation::AccountPictureChanged -= accountPictureChangedToken;
-}
-
-void SetAccountPicture::SetImageButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- FileOpenPicker^ imagePicker = ref new FileOpenPicker();
- imagePicker->ViewMode = PickerViewMode::Thumbnail;
- imagePicker->SuggestedStartLocation = PickerLocationId::PicturesLibrary;
- imagePicker->FileTypeFilter->Append(".jpg");
- imagePicker->FileTypeFilter->Append(".jpeg");
- imagePicker->FileTypeFilter->Append(".png");
- imagePicker->FileTypeFilter->Append(".bmp");
-
- create_task(imagePicker->PickSingleFileAsync()).then(
- [this](StorageFile^ imageFile)
- {
- if (imageFile != nullptr)
- {
- rootPage->NotifyUser("Setting " + imageFile->Name + " as account picture ...",
- NotifyType::StatusMessage);
- create_task(UserInformation::SetAccountPictureAsync(imageFile)).then(
- [this](SetAccountPictureResult setPictureResult)
- {
- if (setPictureResult == SetAccountPictureResult::Success)
- {
- rootPage->NotifyUser("Successfully updated account picture.", NotifyType::StatusMessage);
- }
- else
- {
- rootPage->NotifyUser("Setting account picture failed.", NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("No image was selected.", NotifyType::StatusMessage);
- }
- });
-}
-
-void SetAccountPicture::SetVideoButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- FileOpenPicker^ videoPicker = ref new FileOpenPicker();
- videoPicker->ViewMode = PickerViewMode::Thumbnail;
- videoPicker->SuggestedStartLocation = PickerLocationId::PicturesLibrary;
- videoPicker->FileTypeFilter->Append(".mp4");
- videoPicker->FileTypeFilter->Append(".wmv");
- videoPicker->FileTypeFilter->Append(".mpeg");
- videoPicker->FileTypeFilter->Append(".mov");
-
- create_task(videoPicker->PickSingleFileAsync()).then(
- [this](StorageFile^ videoFile)
- {
- if (videoFile != nullptr)
- {
- rootPage->NotifyUser("Setting " + videoFile->Name + " as account picture ...",
- NotifyType::StatusMessage);
- create_task(UserInformation::SetAccountPictureAsync(videoFile)).then(
- [this](SetAccountPictureResult setPictureResult)
- {
- if (setPictureResult == SetAccountPictureResult::Success)
- {
- rootPage->NotifyUser("Successfully updated account picture.", NotifyType::StatusMessage);
- }
- else
- {
- rootPage->NotifyUser("Setting account picture failed.", NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("No video was selected.", NotifyType::StatusMessage);
- }
- });
-}
-
-void SetAccountPicture::PictureChanged(Platform::Object^ sender, Platform::Object^ e)
-{
- Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler([this]()
- {
- if (UserInformation::NameAccessAllowed)
- {
- auto largeImageFile = UserInformation::GetAccountPicture(AccountPictureKind::LargeImage);
- if (largeImageFile != nullptr)
- {
- create_task(largeImageFile->OpenReadAsync()).then(
- [this](task imageStreamTask)
- {
- try
- {
- auto imageStream = imageStreamTask.get();
- auto bitmapImage = ref new BitmapImage();
- bitmapImage->SetSource(imageStream);
- AccountPictureImage->Source = bitmapImage;
- AccountPictureImage->Visibility = Windows::UI::Xaml::Visibility::Visible;
- }
- catch (Exception^ ex)
- {
- rootPage->NotifyUser("Failed to read from stream. " + ex->Message, NotifyType::ErrorMessage);
- }
- });
- }
- else
- {
- rootPage->NotifyUser("No large account picture image returned for current user.", NotifyType::ErrorMessage);
- }
- }
- else
- {
- rootPage->NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType::ErrorMessage);
- }
- }));
-}
diff --git a/Samples/AccountPictureName/cs/AccountPictureName.sln b/Samples/AccountPictureName/cs/AccountPictureName.sln
deleted file mode 100644
index 8924a937..00000000
--- a/Samples/AccountPictureName/cs/AccountPictureName.sln
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.22609.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccountPictureName", "AccountPictureName.csproj", "{CF1CD0D5-BF6B-457A-9927-8079FC667CA4}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|ARM = Debug|ARM
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|ARM = Release|ARM
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|ARM.ActiveCfg = Debug|ARM
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|ARM.Build.0 = Debug|ARM
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|ARM.Deploy.0 = Debug|ARM
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x64.ActiveCfg = Debug|x64
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x64.Build.0 = Debug|x64
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x64.Deploy.0 = Debug|x64
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x86.ActiveCfg = Debug|x86
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x86.Build.0 = Debug|x86
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x86.Deploy.0 = Debug|x86
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|ARM.ActiveCfg = Release|ARM
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|ARM.Build.0 = Release|ARM
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|ARM.Deploy.0 = Release|ARM
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x64.ActiveCfg = Release|x64
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x64.Build.0 = Release|x64
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x64.Deploy.0 = Release|x64
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x86.ActiveCfg = Release|x86
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x86.Build.0 = Release|x86
- {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x86.Deploy.0 = Release|x86
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
-
-
diff --git a/Samples/AccountPictureName/cs/GetAccountPicture.xaml.cs b/Samples/AccountPictureName/cs/GetAccountPicture.xaml.cs
deleted file mode 100644
index 53a4af87..00000000
--- a/Samples/AccountPictureName/cs/GetAccountPicture.xaml.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Navigation;
-using System;
-using Windows.Storage;
-using Windows.Storage.Streams;
-using Windows.UI.Xaml.Media.Imaging;
-using Windows.System.UserProfile;
-
-namespace SDKTemplate
-{
- public sealed partial class GetAccountPicture : Page
- {
- private MainPage rootPage;
-
- public GetAccountPicture()
- {
- this.InitializeComponent();
- }
-
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- rootPage = MainPage.Current;
- }
-
- private async void GetSmallImageButton_Click(object sender, RoutedEventArgs e)
- {
- HideImageAndVideoControls();
-
- if (UserInformation.NameAccessAllowed)
- {
- // The small picture returned by GetAccountPicture() is 96x96 pixels in size.
- StorageFile image = UserInformation.GetAccountPicture(AccountPictureKind.SmallImage) as StorageFile;
- if (image != null)
- {
- rootPage.NotifyUser("Path = " + image.Path, NotifyType.StatusMessage);
-
- try
- {
- IRandomAccessStream imageStream = await image.OpenReadAsync();
- BitmapImage bitmapImage = new BitmapImage();
- bitmapImage.SetSource(imageStream);
- SmallImage.Source = bitmapImage;
- SmallImage.Visibility = Visibility.Visible;
- }
- catch (Exception ex)
- {
- rootPage.NotifyUser("Error opening stream: " + ex.ToString(), NotifyType.ErrorMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Small account picture is not available.", NotifyType.StatusMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType.ErrorMessage);
- }
- }
-
- private async void GetLargeImageButton_Click(object sender, RoutedEventArgs e)
- {
- HideImageAndVideoControls();
-
- if (UserInformation.NameAccessAllowed)
- {
- // The large picture returned by GetAccountPicture() is 448x448 pixels in size.
- StorageFile image = UserInformation.GetAccountPicture(AccountPictureKind.LargeImage) as StorageFile;
- if (image != null)
- {
- rootPage.NotifyUser("Path = " + image.Path, NotifyType.StatusMessage);
-
- try
- {
- IRandomAccessStream imageStream = await image.OpenReadAsync();
- BitmapImage bitmapImage = new BitmapImage();
- bitmapImage.SetSource(imageStream);
- LargeImage.Source = bitmapImage;
- LargeImage.Visibility = Visibility.Visible;
- }
- catch (Exception ex)
- {
- rootPage.NotifyUser("Error opening stream: " + ex.ToString(), NotifyType.ErrorMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Large account picture is not available.", NotifyType.StatusMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType.ErrorMessage);
- }
- }
-
- private async void GetVideoButton_Click(object sender, RoutedEventArgs e)
- {
- HideImageAndVideoControls();
-
- if (UserInformation.NameAccessAllowed)
- {
- // The video returned from getAccountPicture is 448x448 pixels in size.
- StorageFile video = UserInformation.GetAccountPicture(AccountPictureKind.Video) as StorageFile;
- if (video != null)
- {
- rootPage.NotifyUser("Path: " + video.Path, NotifyType.StatusMessage);
-
- try
- {
- IRandomAccessStream videoStream = await video.OpenAsync(FileAccessMode.Read);
- MediaPlayer.SetSource(videoStream, "video/mp4");
- MediaPlayer.Visibility = Visibility.Visible;
- }
- catch (Exception ex)
- {
- rootPage.NotifyUser("Error opening stream: " + ex.ToString(), NotifyType.ErrorMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Video is not available.", NotifyType.StatusMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Access to account picture disabled by Privacy Setting or Group Policy.", NotifyType.ErrorMessage);
- }
- }
-
- private void HideImageAndVideoControls()
- {
- SmallImage.Visibility = Visibility.Collapsed;
- LargeImage.Visibility = Visibility.Collapsed;
- MediaPlayer.Visibility = Visibility.Collapsed;
- }
-
- }
-}
diff --git a/Samples/AccountPictureName/cs/GetUserDisplayName.xaml.cs b/Samples/AccountPictureName/cs/GetUserDisplayName.xaml.cs
deleted file mode 100644
index 9288f48a..00000000
--- a/Samples/AccountPictureName/cs/GetUserDisplayName.xaml.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Navigation;
-using System;
-using Windows.System.UserProfile;
-
-namespace SDKTemplate
-{
- public sealed partial class GetUserDisplayName : Page
- {
- private MainPage rootPage;
-
- public GetUserDisplayName()
- {
- this.InitializeComponent();
- }
-
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- rootPage = MainPage.Current;
- }
-
- private async void GetDisplayNameButton_Click(object sender, RoutedEventArgs e)
- {
- if (UserInformation.NameAccessAllowed)
- {
- string displayName = await UserInformation.GetDisplayNameAsync();
- if (string.IsNullOrEmpty(displayName))
- {
- rootPage.NotifyUser("No display name was returned.", NotifyType.StatusMessage);
- }
- else
- {
- rootPage.NotifyUser("Display name = " + displayName, NotifyType.StatusMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Access to name disabled by Privacy Setting or Group Policy.", NotifyType.ErrorMessage);
- }
- }
- }
-}
diff --git a/Samples/AccountPictureName/cs/GetUserFirstAndLastName.xaml.cs b/Samples/AccountPictureName/cs/GetUserFirstAndLastName.xaml.cs
deleted file mode 100644
index ba1643b7..00000000
--- a/Samples/AccountPictureName/cs/GetUserFirstAndLastName.xaml.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Navigation;
-using System;
-using Windows.System.UserProfile;
-
-namespace SDKTemplate
-{
- public sealed partial class GetUserFirstAndLastName : Page
- {
- private MainPage rootPage;
-
- public GetUserFirstAndLastName()
- {
- this.InitializeComponent();
- }
-
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- rootPage = MainPage.Current;
- }
-
- private async void GetFirstNameButton_Click(object sender, RoutedEventArgs e)
- {
- if (UserInformation.NameAccessAllowed)
- {
- string firstName = await UserInformation.GetFirstNameAsync();
- if (string.IsNullOrEmpty(firstName))
- {
- rootPage.NotifyUser("No first name was returned.", NotifyType.StatusMessage);
- }
- else
- {
- rootPage.NotifyUser("First name = " + firstName, NotifyType.StatusMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Access to name disabled by Privacy Setting or Group Policy.", NotifyType.ErrorMessage);
- }
- }
-
- private async void GetLastNameButton_Click(object sender, RoutedEventArgs e)
- {
- if (UserInformation.NameAccessAllowed)
- {
- string lastName = await UserInformation.GetLastNameAsync();
- if (string.IsNullOrEmpty(lastName))
- {
- rootPage.NotifyUser("No last name was returned.", NotifyType.StatusMessage);
- }
- else
- {
- rootPage.NotifyUser("Last name = " + lastName, NotifyType.StatusMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Access to name disabled by Privacy Setting or Group Policy.", NotifyType.ErrorMessage);
- }
- }
- }
-}
diff --git a/Samples/AccountPictureName/cs/SampleConfiguration.cs b/Samples/AccountPictureName/cs/SampleConfiguration.cs
deleted file mode 100644
index acbb82e6..00000000
--- a/Samples/AccountPictureName/cs/SampleConfiguration.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using System;
-using System.Collections.Generic;
-using Windows.ApplicationModel;
-using Windows.ApplicationModel.Activation;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Navigation;
-
-namespace SDKTemplate
-{
- public partial class MainPage : Page
- {
- public const string FEATURE_NAME = "Account picture name C# sample";
-
- List scenarios = new List
- {
- new Scenario() { Title = "Get display name", ClassType = typeof(GetUserDisplayName) },
- new Scenario() { Title = "Get first and last name", ClassType = typeof(GetUserFirstAndLastName) },
- new Scenario() { Title = "Get account picture", ClassType = typeof(GetAccountPicture) },
- new Scenario() { Title = "Set account picture and listen for changes", ClassType = typeof(SetAccountPicture) }
- };
-
- public void NavigateToScenario(Type type)
- {
- for (int index = 0; index < scenarios.Count; index++)
- {
- if (scenarios[index].ClassType == type)
- {
- ScenarioControl.SelectedIndex = index;
- break;
- }
- }
- }
- }
-
- public class Scenario
- {
- public string Title { get; set; }
- public Type ClassType { get; set; }
- }
-
- ///
- /// Provides sample-specific behavior to supplement the default Application class.
- ///
- sealed partial class App : Application
- {
- protected override void OnActivated(IActivatedEventArgs args)
- {
- // Check to see if the app was activated via a protocol
- if (args.Kind == ActivationKind.Protocol)
- {
- var protocolArgs = (ProtocolActivatedEventArgs)args;
-
- // This app was activated via the Account picture apps section in PC Settings / Personalize / Account picture.
- // Here you would do app-specific logic so that the user receives account picture selection UX.
- if (protocolArgs.Uri.Scheme == "ms-accountpictureprovider")
- {
- // The Content might be null if App has not yet been activated, if so first activate the main page.
- if (Window.Current.Content == null)
- {
- Frame rootFrame = new Frame();
- rootFrame.Navigate(typeof(MainPage));
- Window.Current.Content = rootFrame;
- Window.Current.Activate();
- }
- MainPage.Current.NavigateToScenario(typeof(SDKTemplate.SetAccountPicture));
- }
- }
- }
- }
-}
diff --git a/Samples/AccountPictureName/cs/SetAccountPicture.xaml.cs b/Samples/AccountPictureName/cs/SetAccountPicture.xaml.cs
deleted file mode 100644
index a6cfa5be..00000000
--- a/Samples/AccountPictureName/cs/SetAccountPicture.xaml.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Navigation;
-using System;
-
-using System.Linq;
-using System.Collections.Generic;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.Graphics.Display;
-using Windows.UI.ViewManagement;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Core;
-using Windows.Storage.Pickers;
-using Windows.Storage;
-using Windows.Storage.Streams;
-using Windows.UI.Xaml.Media.Imaging;
-using Windows.System.UserProfile;
-
-
-namespace SDKTemplate
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class SetAccountPicture : Page
- {
- MainPage rootPage = MainPage.Current;
-
- public SetAccountPicture()
- {
- this.InitializeComponent();
- }
-
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- rootPage = MainPage.Current;
-
- //Listen to AccountPictureChanged event
- UserInformation.AccountPictureChanged += this.PictureChanged;
- }
-
- protected override void OnNavigatedFrom(NavigationEventArgs e)
- {
- //Remove listener to AccountPictureChanged event
- UserInformation.AccountPictureChanged -= this.PictureChanged;
- }
-
- private async void SetImageButton_Click(object sender, RoutedEventArgs e)
- {
-
- FileOpenPicker imagePicker = new FileOpenPicker
- {
- ViewMode = PickerViewMode.Thumbnail,
- SuggestedStartLocation = PickerLocationId.PicturesLibrary,
- FileTypeFilter = { ".jpg", ".jpeg", ".png", ".bmp" }
- };
-
- StorageFile imageFile = await imagePicker.PickSingleFileAsync();
- if (imageFile != null)
- {
- // SetAccountPictureAsync() accepts 3 storageFile objects for setting the small image, large image, and video.
- // More than one type can be set in the same call, but a small image must be accompanied by a large image and/or video.
- // If only a large image is passed, the small image will be autogenerated.
- // If only a video is passed, the large image and small will be autogenerated.
- // Videos must be convertable to mp4, <=5MB, and height and width >= 448 pixels.
-
- // Setting the Account Picture will fail if user disallows it in PC Settings.
- SetAccountPictureResult result = await UserInformation.SetAccountPicturesAsync(null, imageFile, null);
- if (result == SetAccountPictureResult.Success)
- {
- rootPage.NotifyUser("Account picture was successfully changed.", NotifyType.StatusMessage);
- }
- else
- {
- rootPage.NotifyUser("Account picture could not be changed.", NotifyType.StatusMessage);
- AccountPictureImage.Visibility = Visibility.Collapsed;
- }
- }
- }
-
- private async void SetVideoButton_Click(object sender, RoutedEventArgs e)
- {
- FileOpenPicker videoPicker = new FileOpenPicker
- {
- ViewMode = PickerViewMode.Thumbnail,
- SuggestedStartLocation = PickerLocationId.VideosLibrary,
- FileTypeFilter = { ".mp4", ".mpeg", ".wmv", ".mov" }
- };
-
- StorageFile videoFile = await videoPicker.PickSingleFileAsync();
- if (videoFile != null)
- {
- // SetAccountPictureAsync() accepts 3 storageFile objects for setting the small image, large image, and video.
- // More than one type can be set in the same call, but small image must be accompanied by a large image and/or video.
- // If only a large image is passed, the small image will be autogenerated.
- // If only a video is passed, the large image and small will be autogenerated.
- // Videos must be convertable to mp4, <=5MB, and height and width >= 448 pixels.
-
- // Setting the Account Picture will fail if a user disallows it in PC Settings.
- SetAccountPictureResult result = await UserInformation.SetAccountPicturesAsync(null, null, videoFile);
- if (result == SetAccountPictureResult.Success)
- {
- rootPage.NotifyUser("Video account picture was successfully changed.", NotifyType.StatusMessage);
- }
- else
- {
- rootPage.NotifyUser("Account picture could not be changed.", NotifyType.StatusMessage);
- AccountPictureImage.Visibility = Visibility.Collapsed;
- }
- }
- }
-
- private async void PictureChanged(object sender, object e)
- {
- await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
- {
- // The large picture returned by GetAccountPicture() is 448x448 pixels in size.
- StorageFile image = UserInformation.GetAccountPicture(AccountPictureKind.LargeImage) as StorageFile;
- if (image != null)
- {
- try
- {
- IRandomAccessStream imageStream = await image.OpenReadAsync();
- BitmapImage bitmapImage = new BitmapImage();
- bitmapImage.SetSource(imageStream);
- rootPage.NotifyUser("LargeImage path = " + image.Path, NotifyType.StatusMessage);
- AccountPictureImage.Source = bitmapImage;
- AccountPictureImage.Visibility = Visibility.Visible;
- }
- catch (Exception ex)
- {
- rootPage.NotifyUser("Error opening stream: " + ex.ToString(), NotifyType.ErrorMessage);
- }
- }
- else
- {
- rootPage.NotifyUser("Large Account Picture is not available.", NotifyType.StatusMessage);
- }
- });
- }
-
- }
-}
diff --git a/Samples/AccountPictureName/js/html/getAccountPicture.html b/Samples/AccountPictureName/js/html/getAccountPicture.html
deleted file mode 100644
index 269a568d..00000000
--- a/Samples/AccountPictureName/js/html/getAccountPicture.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Get the Account Picture for the current user. You can get request three different types: small, large, and video. If the size that is requested is not available an empty file is returned.
-
-
-
-
- Get Small Image
-
-
- Get Large Image
-
-
- Get Video
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Samples/AccountPictureName/js/html/setAccountPicture.html b/Samples/AccountPictureName/js/html/setAccountPicture.html
deleted file mode 100644
index dbceeee0..00000000
--- a/Samples/AccountPictureName/js/html/setAccountPicture.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Set the Account Picture image for the current logon user. The setAccountPicture method takes three parameters as input: small image, large image, and video. More than one type can be set in the same call, but a small image must be accompanied
- by a large image and/or video. Pass a null for parameters you don't want to set. A change event can be listened to for Account Picture updates. The images below change by listening to the update.
-
-
-
-
- Set image
-
-
- Set video
-
-
-
-
- Get Dynamic Account Picture video
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Samples/AccountPictureName/js/html/userFirstAndLastName.html b/Samples/AccountPictureName/js/html/userFirstAndLastName.html
deleted file mode 100644
index dff86647..00000000
--- a/Samples/AccountPictureName/js/html/userFirstAndLastName.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Get the First and Last Name for the current user. This is only available for Microsoft Accounts, an empty string will be returned if not available.
-
-
-
- Get FirstName
-
-
- Get LastName
-
-
-
-
-
\ No newline at end of file
diff --git a/Samples/AccountPictureName/js/js/getAccountPicture.js b/Samples/AccountPictureName/js/js/getAccountPicture.js
deleted file mode 100644
index 3f09d36e..00000000
--- a/Samples/AccountPictureName/js/js/getAccountPicture.js
+++ /dev/null
@@ -1,71 +0,0 @@
-//// Copyright (c) Microsoft Corporation. All rights reserved
-
-(function () {
- "use strict";
- var page = WinJS.UI.Pages.define("/html/getAccountPicture.html", {
- ready: function (element, options) {
- hideVisibleHolders();
- document.getElementById("getSmallImage").addEventListener("click", getSmallImage, false);
- document.getElementById("getLargeImage").addEventListener("click", getLargeImage, false);
- document.getElementById("getVideo").addEventListener("click", getVideo, false);
- }
- });
-
- function getSmallImage() {
- hideVisibleHolders();
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- // The small picture returned by getAccountPicture() is 96x96 pixels in size.
- var image = Windows.System.UserProfile.UserInformation.getAccountPicture(Windows.System.UserProfile.AccountPictureKind.smallImage);
- if (image) {
- document.getElementById("smallImageHolder").style.visibility = "visible";
- document.getElementById("smallImageHolder").src = URL.createObjectURL(image, { oneTimeOnly: true });
- WinJS.log && WinJS.log("Path: " + image.path, "sample", "status");
- } else {
- WinJS.log && WinJS.log("Small account picture is not available.", "sample", "status");
- }
- } else {
- WinJS.log && WinJS.log("Access to account picture disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-
- function getLargeImage() {
- hideVisibleHolders();
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- // The large picture returned by getAccountPicture() is 448x448 pixels in size.
- var image = Windows.System.UserProfile.UserInformation.getAccountPicture(Windows.System.UserProfile.AccountPictureKind.largeImage);
- if (image) {
- document.getElementById("largeImageHolder").style.visibility = "visible";
- document.getElementById("largeImageHolder").src = URL.createObjectURL(image, { oneTimeOnly: true });
- WinJS.log && WinJS.log("Path: " + image.path, "sample", "status");
- } else {
- WinJS.log && WinJS.log("Large account picture is not available.", "sample", "status");
- }
- } else {
- WinJS.log && WinJS.log("Access to account picture disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-
- function getVideo() {
- hideVisibleHolders();
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- // The video returned from getAccountPicture is 448x448 pixels in size.
- var video = Windows.System.UserProfile.UserInformation.getAccountPicture(Windows.System.UserProfile.AccountPictureKind.video);
- if (video) {
- document.getElementById("videoHolder").style.visibility = "visible";
- document.getElementById("videoHolder").src = URL.createObjectURL(video, { oneTimeOnly: true });
- document.getElementById("videoHolder").play();
- WinJS.log && WinJS.log("Path: " + video.path, "sample", "status");
- } else {
- WinJS.log && WinJS.log("Video is not available.", "sample", "status");
- }
- } else {
- WinJS.log && WinJS.log("Access to account picture disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-
- function hideVisibleHolders() {
- document.getElementById("smallImageHolder").style.visibility = "hidden";
- document.getElementById("largeImageHolder").style.visibility = "hidden";
- document.getElementById("videoHolder").style.visibility = "hidden";
- }
-})();
diff --git a/Samples/AccountPictureName/js/js/sample-configuration.js b/Samples/AccountPictureName/js/js/sample-configuration.js
deleted file mode 100644
index de7c2f00..00000000
--- a/Samples/AccountPictureName/js/js/sample-configuration.js
+++ /dev/null
@@ -1,32 +0,0 @@
-//// Copyright (c) Microsoft Corporation. All rights reserved
-
-(function () {
- "use strict";
-
- var sampleTitle = "Account picture name JS sample";
-
- var scenarios = [
- { url: "/html/userDisplayName.html", title: "Get display name" },
- { url: "/html/userFirstAndLastName.html", title: "Get first and last name" },
- { url: "/html/getAccountPicture.html", title: "Get account picture" },
- { url: "/html/setAccountPicture.html", title: "Set account picture and listen for changes" }
- ];
-
- WinJS.Navigation.addEventListener("navigating", function (e) {
- if (e.detail && e.detail.state && e.detail.state.activatedEventArgs) {
- var uri = e.detail.state.activatedEventArgs[0].uri;
- if (uri && uri.schemeName === "ms-accountpictureprovider") {
- // This app was activated via the Account picture apps section in Settings.
- // Here you would do app-specific logic for providing the user with account picture selection UX
- setImmediate(function () {
- WinJS.Navigation.navigate(scenarios[3].url).done();
- });
- }
- }
- });
-
- WinJS.Namespace.define("SdkSample", {
- sampleTitle: sampleTitle,
- scenarios: new WinJS.Binding.List(scenarios)
- });
-})();
diff --git a/Samples/AccountPictureName/js/js/setAccountPicture.js b/Samples/AccountPictureName/js/js/setAccountPicture.js
deleted file mode 100644
index 12d0d68a..00000000
--- a/Samples/AccountPictureName/js/js/setAccountPicture.js
+++ /dev/null
@@ -1,102 +0,0 @@
-//// Copyright (c) Microsoft Corporation. All rights reserved
-
-(function () {
- "use strict";
- var page = WinJS.UI.Pages.define("/html/setAccountPicture.html", {
- ready: function (element, options) {
- hideVisibleHolders();
- document.getElementById("setImage").addEventListener("click", setImage, false);
- document.getElementById("setVideo").addEventListener("click", setVideo, false);
- Windows.System.UserProfile.UserInformation.addEventListener("accountpicturechanged", accountPictureChanged);
- }
- });
-
- function setImage() {
- hideVisibleHolders();
- var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
- openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
- openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
- openPicker.fileTypeFilter.replaceAll([".bmp", ".png", ".jpg", ".jpeg"]);
-
- openPicker.pickSingleFileAsync().done(function (file) {
- if (file) {
- // setAccountPictureAsync() accepts 3 storageFile objects for setting the small image, large image, and video.
- // More than one type can be set in the same call, but small image must be accompanied by a large image and/or video.
- // If only a large image is passed, the small image will be autogenerated.
- // If only a video is passed, the large image and small will be autogenerated.
- // Videos must be convertable to mp4, <=5MB, and height and width >= 448 pixels.
- Windows.System.UserProfile.UserInformation.setAccountPicturesAsync(null, file, null).done(function (result) {
- // A user might turn off access to the Account Picture in PC Settings, therefore we need to check the result for success.
- if (result === Windows.System.UserProfile.SetAccountPictureResult.success) {
- WinJS.log && WinJS.log("Successfully updated account picture.", "sample", "status");
- } else {
- // A user might turn off access to the account
- WinJS.log && WinJS.log("Setting account picture failed.", "sample", "status");
- }
- });
- } else {
- WinJS.log && WinJS.log("No image was selected.", "sample", "status");
- }
- });
- }
-
- function setVideo() {
- hideVisibleHolders();
- var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
- openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
- openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
- openPicker.fileTypeFilter.replaceAll([".mov", ".mp4", ".wmv"]);
-
- openPicker.pickSingleFileAsync().done(function (file) {
- if (file) {
- // setAccountPictureAsync() accepts 3 storageFile objects for setting the small image, large image, and video.
- // More than one type can be set in the same call, but small image must be accompanied by a large image and/or video.
- // If only a large image is passed, the small image will be autogenerated.
- // If only a video is passed, the large image and small will be autogenerated.
- // Videos must be convertable to mp4, <=5MB, and height and width >= 448 pixels.
- Windows.System.UserProfile.UserInformation.setAccountPicturesAsync(null, null, file).done(function (result) {
- // A user might turn off access to the Account Picture in PC Settings, therefore we need to check the result for success.
- if (result === Windows.System.UserProfile.SetAccountPictureResult.success) {
- WinJS.log && WinJS.log("Successfully updated account picture.", "sample", "status");
- } else {
- // A user might turn off access to the account
- WinJS.log && WinJS.log("Setting account picture failed.", "sample", "status");
- }
- });
- } else {
- WinJS.log && WinJS.log("No video was selected.", "sample", "status");
- }
- });
- }
-
- // This function is the handler for the AccountPictureChangedEvent, the event listener is added in initialize() below.
- function accountPictureChanged() {
- hideVisibleHolders();
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- var smallImage = Windows.System.UserProfile.UserInformation.getAccountPicture(Windows.System.UserProfile.AccountPictureKind.smallImage);
- if (smallImage) {
- document.getElementById("smallImageHolder").src = URL.createObjectURL(smallImage, { oneTimeOnly: true });
- document.getElementById("smallImageHolder").style.visibility = "visible";
- }
- var largeImage = Windows.System.UserProfile.UserInformation.getAccountPicture(Windows.System.UserProfile.AccountPictureKind.largeImage);
- if (largeImage) {
- document.getElementById("largeImageHolder").src = URL.createObjectURL(largeImage, { oneTimeOnly: true });
- document.getElementById("largeImageHolder").style.visibility = "visible";
- }
- var video = Windows.System.UserProfile.UserInformation.getAccountPicture(Windows.System.UserProfile.AccountPictureKind.video);
- if (video) {
- document.getElementById("videoHolder").src = URL.createObjectURL(video, { oneTimeOnly: true });
- document.getElementById("videoHolder").style.visibility = "visible";
- }
- } else {
- WinJS.log && WinJS.log("Access to account picture disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-
- function hideVisibleHolders() {
- document.getElementById("smallImageHolder").style.visibility = "hidden";
- document.getElementById("largeImageHolder").style.visibility = "hidden";
- document.getElementById("videoHolder").style.visibility = "hidden";
- WinJS.log && WinJS.log(" ", "sample", "status");
- }
-})();
diff --git a/Samples/AccountPictureName/js/js/userDisplayName.js b/Samples/AccountPictureName/js/js/userDisplayName.js
deleted file mode 100644
index 040dbdfd..00000000
--- a/Samples/AccountPictureName/js/js/userDisplayName.js
+++ /dev/null
@@ -1,24 +0,0 @@
-//// Copyright (c) Microsoft Corporation. All rights reserved
-
-(function () {
- "use strict";
- var page = WinJS.UI.Pages.define("/html/userDisplayName.html", {
- ready: function (element, options) {
- document.getElementById("getDisplayName").addEventListener("click", getDisplayName, false);
- }
- });
-
- function getDisplayName() {
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- Windows.System.UserProfile.UserInformation.getDisplayNameAsync().done(function (result) {
- if (result) {
- WinJS.log && WinJS.log("Display name = " + result, "sample", "status");
- } else {
- WinJS.log && WinJS.log("No display name was returned.", "sample", "status");
- }
- });
- } else {
- WinJS.log && WinJS.log("Access to name disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-})();
diff --git a/Samples/AccountPictureName/js/js/userFirstAndLastName.js b/Samples/AccountPictureName/js/js/userFirstAndLastName.js
deleted file mode 100644
index b2e2e66d..00000000
--- a/Samples/AccountPictureName/js/js/userFirstAndLastName.js
+++ /dev/null
@@ -1,39 +0,0 @@
-//// Copyright (c) Microsoft Corporation. All rights reserved
-
-(function () {
- "use strict";
- var page = WinJS.UI.Pages.define("/html/userFirstAndLastName.html", {
- ready: function (element, options) {
- document.getElementById("getFirstName").addEventListener("click", getFirstName, false);
- document.getElementById("getLastName").addEventListener("click", getLastName, false);
- }
- });
-
- function getFirstName() {
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- Windows.System.UserProfile.UserInformation.getFirstNameAsync().done(function (result) {
- if (result) {
- WinJS.log && WinJS.log("First name = " + result, "sample", "status");
- } else {
- WinJS.log && WinJS.log("No first name was returned.", "sample", "status");
- }
- });
- } else {
- WinJS.log && WinJS.log("Access to name disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-
- function getLastName() {
- if (Windows.System.UserProfile.UserInformation.nameAccessAllowed) {
- Windows.System.UserProfile.UserInformation.getLastNameAsync().done(function (result) {
- if (result) {
- WinJS.log && WinJS.log("Last name = " + result, "sample", "status");
- } else {
- WinJS.log && WinJS.log("No last name was returned.", "sample", "status");
- }
- });
- } else {
- WinJS.log && WinJS.log("Access to name disabled by Privacy Setting or Group Policy.", "sample", "error");
- }
- }
-})();
diff --git a/Samples/AccountPictureName/shared/GetAccountPicture.xaml b/Samples/AccountPictureName/shared/GetAccountPicture.xaml
deleted file mode 100644
index 96bd210c..00000000
--- a/Samples/AccountPictureName/shared/GetAccountPicture.xaml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- Get the Account Picture for the current user.
-
-
-
-
-
-
- You can request three different types: small, large and video (dynamic image). If the type that is requested is not available, an empty file is returned.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/AccountPictureName/shared/SetAccountPicture.xaml b/Samples/AccountPictureName/shared/SetAccountPicture.xaml
deleted file mode 100644
index 54929d5c..00000000
--- a/Samples/AccountPictureName/shared/SetAccountPicture.xaml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- Set the Account Picture for the current logon user.
-
-
-
-
-
-
- The SetAccountPicture method takes three parameters as input:
- small image, large image, and video.
- More than one type can be set in the same call,
- but a small image must be accompanied by a large image and/or video.
- Pass a null for parameters you don't want to set.
- A change event can be listened to for Account Picture updates.
- The images below change by listening to the update.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/ActivitySensor/README.md b/Samples/ActivitySensor/README.md
index f880f4dd..b2b76443 100644
--- a/Samples/ActivitySensor/README.md
+++ b/Samples/ActivitySensor/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Activity Detection Sensor sample
+# Activity detection sensor sample
This sample demonstrates the use of the Windows.Devices.Sensors.ActivitySensor API.
@@ -39,9 +39,10 @@ Registers a background task for activity changes. The background task runs whene
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AdaptiveStreaming/README.md b/Samples/AdaptiveStreaming/README.md
index e7f58dd2..e6637856 100644
--- a/Samples/AdaptiveStreaming/README.md
+++ b/Samples/AdaptiveStreaming/README.md
@@ -2,7 +2,7 @@
category: AudioVideoAndCamera
--->
-# Adaptive Streaming Sample
+# Adaptive streaming sample
How to create and use an AdaptiveMediaSource to playback HLS and DASH content over HTTP.
@@ -31,9 +31,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C\# or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/AdvancedCasting/README.md b/Samples/AdvancedCasting/README.md
index 251400ce..01717c86 100644
--- a/Samples/AdvancedCasting/README.md
+++ b/Samples/AdvancedCasting/README.md
@@ -1,8 +1,8 @@
-Advanced Casting Sample
------------
+
+# Advanced casting sample
This sample shows how to use the APIs in the **Windows.Media.Casting** and **Windows.Media.DialProtocol** namespaces. It also illustrates how to use the **Windows.UI.ViewManagement.ProjectionManager** and **Windows.Devices.Enumeration.DevicePicker** APIs to render media on a remote device. It covers sending media to various devices- Miracast, DLNA, DIAL, and Bluetooth. For an intro to casting, see the *Basic Media Casting Sample*.
@@ -48,9 +48,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/AllJoyn/ConsumerExperiences/README.md b/Samples/AllJoyn/ConsumerExperiences/README.md
index 1b52ae65..883274bb 100644
--- a/Samples/AllJoyn/ConsumerExperiences/README.md
+++ b/Samples/AllJoyn/ConsumerExperiences/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# AllJoyn Consumer Experiences Sample
+# AllJoyn consumer experiences sample
This sample demonstrates how to create an AllJoyn Windows Universal app using Code Generation with Introspection XML and Windows.Devices.AllJoyn.
diff --git a/Samples/AllJoyn/ProducerExperiences/README.md b/Samples/AllJoyn/ProducerExperiences/README.md
index 0da3c625..e3da9219 100644
--- a/Samples/AllJoyn/ProducerExperiences/README.md
+++ b/Samples/AllJoyn/ProducerExperiences/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# AllJoyn Producer Experiences Sample
+# AllJoyn producer experiences sample
This sample demonstrates how to create an AllJoyn Windows Universal app using Code Generation with Introspection XML and Windows.Devices.AllJoyn.
diff --git a/Samples/Altimeter/README.md b/Samples/Altimeter/README.md
index 9fe539c4..1028f0dc 100644
--- a/Samples/Altimeter/README.md
+++ b/Samples/Altimeter/README.md
@@ -29,9 +29,10 @@ When you choose the **Get Data** button for the **Polling** option, the app will
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AnimationLibrary/README.md b/Samples/AnimationLibrary/README.md
index 04cbd3e9..284fbdd0 100644
--- a/Samples/AnimationLibrary/README.md
+++ b/Samples/AnimationLibrary/README.md
@@ -1,6 +1,7 @@
+
# HTML animation library sample
This sample shows how to use the Animation Library APIs. These functions provide you with the ability to use animations in your Windows Store apps and custom controls that are consistent with animations used by Windows.
@@ -128,9 +129,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AnimationMetrics/README.md b/Samples/AnimationMetrics/README.md
index 0b575ee6..e47359cf 100644
--- a/Samples/AnimationMetrics/README.md
+++ b/Samples/AnimationMetrics/README.md
@@ -1,6 +1,7 @@
+
# Animation metrics sample
This sample shows how to use the Animation Metrics APIs ([**Windows.UI.Core.AnimationMetrics**](http://msdn.microsoft.com/library/windows/apps/br241916) to access the raw parameters that define the animations in the Windows [Animation Library](http://msdn.microsoft.com/library/windows/apps/hh465165). This info can help developers of applications and application frameworks to create animations that are consistent with Windows and other apps that use the Windows Animation Library.
@@ -36,9 +37,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AppServices/README.md b/Samples/AppServices/README.md
index 38acc46f..90e8c065 100644
--- a/Samples/AppServices/README.md
+++ b/Samples/AppServices/README.md
@@ -1,4 +1,8 @@
-# App Services Sample
+
+
+# App services sample
This sample demonstrates how an app can provide a service that other apps can consume. [**Windows.ApplicationModel.AppServices**](https://msdn.microsoft.com/en-us/library/windows.applicationmodel.appservice.aspx) namespace. Some of the classes you might want to review in more detail are the [**AppServiceConnection**](https://msdn.microsoft.com/en-us/library/windows.applicationmodel.appservice.appserviceconnection.aspx) class, which you use to open a connection to an app service and send messages to it, and the [**AppServiceTriggerDetails**](https://msdn.microsoft.com/en-us/library/windows.applicationmodel.appservice.appservicetriggerdetails.aspx) class, which an app service can use to receive and respond to messages.
@@ -21,9 +25,10 @@ To obtain an insider copy of Windows 10, go to [Windows 10](http://insider.windo
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ApplicationData/README.md b/Samples/ApplicationData/README.md
index 982a2c7f..d1d8fc54 100644
--- a/Samples/ApplicationData/README.md
+++ b/Samples/ApplicationData/README.md
@@ -69,9 +69,10 @@ The sample covers these key tasks:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ApplicationResources/README.md b/Samples/ApplicationResources/README.md
index 038fb19e..5fedefe3 100644
--- a/Samples/ApplicationResources/README.md
+++ b/Samples/ApplicationResources/README.md
@@ -42,9 +42,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Appointments/README.md b/Samples/Appointments/README.md
index f52c23ef..1ffbbad5 100644
--- a/Samples/Appointments/README.md
+++ b/Samples/Appointments/README.md
@@ -2,7 +2,7 @@
category: ContactsAndCalendar
--->
-# Appointments API sample
+# Appointment calendar sample
Demonstrates the functionality of the API of the [**Windows.ApplicationModel.Appointments**](http://msdn.microsoft.com/library/windows/apps/dn263359) namespace.
@@ -35,9 +35,10 @@ For more info about the concepts and APIs demonstrated in this sample, see these
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AssociationLaunching/README.md b/Samples/AssociationLaunching/README.md
index 59dc6c2f..bb86af95 100644
--- a/Samples/AssociationLaunching/README.md
+++ b/Samples/AssociationLaunching/README.md
@@ -2,7 +2,7 @@
category: LaunchingAndBackgroundTasks
--->
-# Association Launching sample
+# Association launching sample
This sample shows you how to launch an app for to handle a file type or a protocol (also known as custom scheme). You can also learn how to enable your app to be the handler for a file type or a protocol.
@@ -62,9 +62,10 @@ For more info about the concepts and APIs demonstrated in this sample, see these
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/AudioCategory/README.md b/Samples/AudioCategory/README.md
index 280f6ace..6d8a420a 100644
--- a/Samples/AudioCategory/README.md
+++ b/Samples/AudioCategory/README.md
@@ -2,7 +2,7 @@
category: AudioVideoAndCamera
--->
-# Audio Categories Sample
+# Audio categories sample
This sample demonstrates how to create apps that use various audio categories.
@@ -16,9 +16,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C\# or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/AudioCreation/README.md b/Samples/AudioCreation/README.md
index f21707cc..e439df94 100644
--- a/Samples/AudioCreation/README.md
+++ b/Samples/AudioCreation/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-AudioGraph Sample
------------
+# Audio graphs sample
This sample shows how to use the APIs in the **Windows.Media.Audio** namespace to create audio graphs for audio routing, mixing, and processing scenarios.
An audio graph is a set of interconnected audio nodes through which audio data flows. Audio input nodes supply audio data to the graph from audio input devices,
@@ -101,9 +100,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/BackButton/README.md b/Samples/BackButton/README.md
new file mode 100644
index 00000000..d794fb3c
--- /dev/null
+++ b/Samples/BackButton/README.md
@@ -0,0 +1,49 @@
+
+
+# Back Button Sample
+
+This sample demonstrates how to set up an event handler for the back button event and how to enable the title bar back button for when the app is in windowed Desktop mode.
+
+Specifically, this sample covers:
+
+- Setting up an event handler for BackRequested and to navigate back in the page stack.
+- Enabling and disabling the title bar back button based on the app's internal page stack.
+
+To obtain an insider copy of Windows 10, go to [Windows 10](http://insider.windows.com).
+
+**Note** For Windows 10 app samples, go to [Windows 10 Samples](https://github.com/Microsoft/Windows-universal-samples). The samples for Windows 10 can be built and run using Windows developer [tools](https://developer.windows.com).
+
+
+## Related topics
+
+- [Windows app samples](http://go.microsoft.com/fwlink/p/?LinkID=227694)
+
+
+## System requirements
+
+**Client:** Windows 10
+
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.
diff --git a/Samples/BackButton/cs/App.xaml.cs b/Samples/BackButton/cs/App.xaml.cs
new file mode 100644
index 00000000..b0ff4e82
--- /dev/null
+++ b/Samples/BackButton/cs/App.xaml.cs
@@ -0,0 +1,127 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.UI.Core;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
+
+namespace SDKTemplate
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ sealed partial class App : Application
+ {
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ this.Construct();
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(LaunchActivatedEventArgs e)
+ {
+
+#if DEBUG
+ if (System.Diagnostics.Debugger.IsAttached)
+ {
+ this.DebugSettings.EnableFrameRateCounter = false;
+ }
+#endif
+
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (rootFrame == null)
+ {
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+ // Set the default language
+ rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0];
+
+ rootFrame.NavigationFailed += OnNavigationFailed;
+
+ if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
+ {
+ //TODO: Load state from previously suspended application
+ }
+
+ // Place the frame in the current Window
+ Window.Current.Content = rootFrame;
+ }
+
+ if (rootFrame.Content == null)
+ {
+ // When the navigation stack isn't restored navigate to the first page,
+ // configuring the new page by passing required information as a navigation
+ // parameter
+ rootFrame.Navigate(typeof(MainPage), e.Arguments);
+ }
+
+ // Register a global back event handler. This can be registered on a per-page-bases if you only have a subset of your pages
+ // that needs to handle back or if you want to do page-specific logic before deciding to navigate back on those pages.
+ SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;
+
+ // Ensure the current window is active
+ Window.Current.Activate();
+ }
+
+ ///
+ /// Invoked when a user issues a global back on the device.
+ /// If the app has no in-app back stack left for the current view/frame the user may be navigated away
+ /// back to the previous app in the system's app back stack or to the start screen.
+ /// In windowed mode on desktop there is no system app back stack and the user will stay in the app even when the in-app back stack is depleted.
+ ///
+ ///
+ ///
+ private void App_BackRequested(object sender, BackRequestedEventArgs e)
+ {
+ Frame rootFrame = Window.Current.Content as Frame;
+ if (rootFrame == null)
+ return;
+
+ // If we can go back and the event has not already been handled, do so.
+ if (rootFrame.CanGoBack && e.Handled == false)
+ {
+ e.Handled = true;
+ rootFrame.GoBack();
+ }
+ }
+
+ ///
+ /// Invoked when Navigation to a certain page fails
+ ///
+ /// The Frame which failed navigation
+ /// Details about the navigation failure
+ void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+ {
+ throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
+ }
+
+ // Add any application contructor code in here.
+ partial void Construct();
+ }
+}
diff --git a/Samples/BackButton/cs/MainPage.xaml.cs b/Samples/BackButton/cs/MainPage.xaml.cs
new file mode 100644
index 00000000..deb30045
--- /dev/null
+++ b/Samples/BackButton/cs/MainPage.xaml.cs
@@ -0,0 +1,153 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using Windows.UI.Core;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
+
+namespace SDKTemplate
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class MainPage : Page
+ {
+ public static MainPage Current;
+
+ public MainPage()
+ {
+ this.InitializeComponent();
+
+ // This is a static public property that allows downstream pages to get a handle to the MainPage instance
+ // in order to call methods that are in this class.
+ Current = this;
+ SampleTitle.Text = FEATURE_NAME;
+
+ // Caching your main page is good practice, this makes it snappy for the user to return to "home" of your app.
+ this.NavigationCacheMode = NavigationCacheMode.Required;
+ }
+
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ // Populate the scenario list from the SampleConfiguration.cs file
+ ScenarioControl.ItemsSource = scenarios;
+ if (Window.Current.Bounds.Width < 640)
+ {
+ ScenarioControl.SelectedIndex = -1;
+ }
+ else
+ {
+ ScenarioControl.SelectedIndex = 0;
+ }
+
+ // This page is always at the top of our in-app back stack.
+ // Once it is reached there is no further back so we can always disable the title bar back UI when navigated here.
+ // If you want to you can always to the Frame.CanGoBack check for all your pages and act accordingly.
+ SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
+ }
+
+ ///
+ /// Called whenever the user changes selection in the scenarios list. This method will navigate to the respective
+ /// sample scenario page.
+ ///
+ ///
+ ///
+ private void ScenarioControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ // Clear the status block when navigating scenarios.
+ NotifyUser(String.Empty, NotifyType.StatusMessage);
+
+ ListBox scenarioListBox = sender as ListBox;
+ Scenario s = scenarioListBox.SelectedItem as Scenario;
+ if (s != null)
+ {
+ ScenarioFrame.Navigate(s.ClassType);
+ if (Window.Current.Bounds.Width < 640)
+ {
+ Splitter.IsPaneOpen = false;
+ }
+ }
+ }
+
+ public List Scenarios
+ {
+ get { return this.scenarios; }
+ }
+
+ ///
+ /// Used to display messages to the user
+ ///
+ ///
+ ///
+ public void NotifyUser(string strMessage, NotifyType type)
+ {
+ switch (type)
+ {
+ case NotifyType.StatusMessage:
+ StatusBorder.Background = new SolidColorBrush(Windows.UI.Colors.Green);
+ break;
+ case NotifyType.ErrorMessage:
+ StatusBorder.Background = new SolidColorBrush(Windows.UI.Colors.Red);
+ break;
+ }
+ StatusBlock.Text = strMessage;
+
+ // Collapse the StatusBlock if it has no text to conserve real estate.
+ StatusBorder.Visibility = (StatusBlock.Text != String.Empty) ? Visibility.Visible : Visibility.Collapsed;
+ if (StatusBlock.Text != String.Empty)
+ {
+ StatusBorder.Visibility = Visibility.Visible;
+ StatusPanel.Visibility = Visibility.Visible;
+ }
+ else
+ {
+ StatusBorder.Visibility = Visibility.Collapsed;
+ StatusPanel.Visibility = Visibility.Collapsed;
+ }
+ }
+
+ async void Footer_Click(object sender, RoutedEventArgs e)
+ {
+ await Windows.System.Launcher.LaunchUriAsync(new Uri(((HyperlinkButton)sender).Tag.ToString()));
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ Splitter.IsPaneOpen = !Splitter.IsPaneOpen;
+ }
+ }
+ public enum NotifyType
+ {
+ StatusMessage,
+ ErrorMessage
+ };
+
+ public class ScenarioBindingConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, string language)
+ {
+ Scenario s = value as Scenario;
+ return (MainPage.Current.Scenarios.IndexOf(s) + 1) + ") " + s.Title;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, string language)
+ {
+ return true;
+ }
+ }
+}
diff --git a/Samples/BackButton/cs/Package.appxmanifest b/Samples/BackButton/cs/Package.appxmanifest
new file mode 100644
index 00000000..1154096e
--- /dev/null
+++ b/Samples/BackButton/cs/Package.appxmanifest
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+ SystemBack C# Sample
+ Microsoft Corporation
+ Assets\StoreLogo-sdk.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/BackButton/cs/SampleConfiguration.cs b/Samples/BackButton/cs/SampleConfiguration.cs
new file mode 100644
index 00000000..e403f595
--- /dev/null
+++ b/Samples/BackButton/cs/SampleConfiguration.cs
@@ -0,0 +1,33 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using Windows.UI.Xaml.Controls;
+
+namespace SDKTemplate
+{
+ public partial class MainPage : Page
+ {
+ public const string FEATURE_NAME = "SystemBack";
+
+ List scenarios = new List
+ {
+ new Scenario() { Title="Subscribe to the BackRequested event", ClassType=typeof(Scenario1)},
+ };
+ }
+
+ public class Scenario
+ {
+ public string Title { get; set; }
+ public Type ClassType { get; set; }
+ }
+}
diff --git a/Samples/AccountPictureName/shared/GetUserDisplayName.xaml b/Samples/BackButton/cs/Scenario1.xaml
similarity index 70%
rename from Samples/AccountPictureName/shared/GetUserDisplayName.xaml
rename to Samples/BackButton/cs/Scenario1.xaml
index 822e975c..2cf69359 100644
--- a/Samples/AccountPictureName/shared/GetUserDisplayName.xaml
+++ b/Samples/BackButton/cs/Scenario1.xaml
@@ -11,15 +11,16 @@
//*********************************************************
-->
-
+
@@ -28,19 +29,16 @@
- Get the display name for the current user.
+ How to enable back navigation using system assets such as hardware back button, global navigation bar, hotkeys and title bar UI
-
-
+
+
+
-
-
-
diff --git a/Samples/BackButton/cs/Scenario1.xaml.cs b/Samples/BackButton/cs/Scenario1.xaml.cs
new file mode 100644
index 00000000..8ebf1149
--- /dev/null
+++ b/Samples/BackButton/cs/Scenario1.xaml.cs
@@ -0,0 +1,56 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using Windows.UI.Core;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+
+namespace SDKTemplate
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class Scenario1 : Page
+ {
+ private MainPage rootPage;
+
+ private static bool optedIn = false;
+
+ public Scenario1()
+ {
+ this.InitializeComponent();
+
+ // I want this page to be always cached so that we don't have to add logic to save/restore state for the checkbox.
+ this.NavigationCacheMode = NavigationCacheMode.Required;
+ }
+
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ rootPage = MainPage.Current;
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ // Navigate to the next page, with info in the parameters whether to enable the title bar UI or not.
+ rootFrame.Navigate(typeof(SecondaryPage), optedIn);
+ }
+
+ private void CheckBox_Toggle(object sender, RoutedEventArgs e)
+ {
+ optedIn = !optedIn;
+ }
+ }
+}
diff --git a/Samples/BackButton/cs/SecondaryPage.xaml b/Samples/BackButton/cs/SecondaryPage.xaml
new file mode 100644
index 00000000..46a739ab
--- /dev/null
+++ b/Samples/BackButton/cs/SecondaryPage.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ The only way to navigate back to the main page is through the use of one of the system back affordances listed below.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/BackButton/cs/SecondaryPage.xaml.cs b/Samples/BackButton/cs/SecondaryPage.xaml.cs
new file mode 100644
index 00000000..7faf89ee
--- /dev/null
+++ b/Samples/BackButton/cs/SecondaryPage.xaml.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.Core;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+
+namespace SDKTemplate
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class SecondaryPage : Page
+ {
+ public SecondaryPage()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ bool optedIn = false;
+
+ if ((bool)e.Parameter)
+ {
+ optedIn = true;
+
+ }
+
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ if (rootFrame.CanGoBack && optedIn)
+ {
+ // If we have pages in our in-app backstack and have opted in to showing back, do so
+ SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
+ }
+ else
+ {
+ // Remove the UI from the title bar if there are no pages in our in-app back stack
+ SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
+ }
+ }
+ }
+}
diff --git a/Samples/BackButton/cs/SystemBack.csproj b/Samples/BackButton/cs/SystemBack.csproj
new file mode 100644
index 00000000..512061af
--- /dev/null
+++ b/Samples/BackButton/cs/SystemBack.csproj
@@ -0,0 +1,171 @@
+
+
+
+
+ Debug
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}
+ AppContainerExe
+ Properties
+ SystemBack
+ SystemBack
+ en-US
+ UAP
+ 10.0.10240.0
+ 10.0.10069.0
+ 14
+ true
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ true
+
+
+
+ App.xaml
+
+
+ MainPage.xaml
+
+
+ Properties\AssemblyInfo.cs
+
+
+
+ Scenario1.xaml
+
+
+ SecondaryPage.xaml
+
+
+
+
+ Designer
+
+
+
+
+ App.xaml
+ MSBuild:Compile
+ Designer
+
+
+ MainPage.xaml
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Styles\Styles.xaml
+ MSBuild:Compile
+ Designer
+
+
+
+
+ Assets\microsoft-sdk.png
+
+
+ Assets\smalltile-sdk.png
+
+
+ Assets\splash-sdk.png
+
+
+ Assets\squaretile-sdk.png
+
+
+ Assets\storelogo-sdk.png
+
+
+ Assets\tile-sdk.png
+
+
+ Assets\windows-sdk.png
+
+
+
+ 14.0
+
+
+
+
\ No newline at end of file
diff --git a/Samples/BackButton/cs/SystemBack.sln b/Samples/BackButton/cs/SystemBack.sln
new file mode 100644
index 00000000..d6fb2efe
--- /dev/null
+++ b/Samples/BackButton/cs/SystemBack.sln
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.23023.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemBack", "SystemBack.csproj", "{DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|ARM.ActiveCfg = Debug|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|ARM.Build.0 = Debug|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|ARM.Deploy.0 = Debug|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x64.ActiveCfg = Debug|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x64.Build.0 = Debug|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x64.Deploy.0 = Debug|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x86.ActiveCfg = Debug|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x86.Build.0 = Debug|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x86.Deploy.0 = Debug|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|ARM.ActiveCfg = Release|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|ARM.Build.0 = Release|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|ARM.Deploy.0 = Release|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x64.ActiveCfg = Release|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x64.Build.0 = Release|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x64.Deploy.0 = Release|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x86.ActiveCfg = Release|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x86.Build.0 = Release|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/BackgroundAudio/README.md b/Samples/BackgroundAudio/README.md
index 6c4e9566..33f948cb 100644
--- a/Samples/BackgroundAudio/README.md
+++ b/Samples/BackgroundAudio/README.md
@@ -2,7 +2,7 @@
category: AudioVideoAndCamera
--->
-# Background Audio
+# Background audio sample
This sample demonstrates how to use the Background Media Player and playback lists to create a collection of songs that can continue to play even when the app is no longer in the foreground.
@@ -26,9 +26,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C\# or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/BackgroundSensors/README.md b/Samples/BackgroundSensors/README.md
index a1b66eea..5ff4f6f5 100644
--- a/Samples/BackgroundSensors/README.md
+++ b/Samples/BackgroundSensors/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Background Sensors sample
+# Background sensors sample
This sample shows how to use background tasks with a device use trigger targetting sensors APIs. For the sake of the example, the [**Accelerometer**](http://msdn.microsoft.com/library/windows/apps/br225687) API is used in this sample.
@@ -33,9 +33,10 @@ Related topics
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, or C#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/BackgroundTask/README.md b/Samples/BackgroundTask/README.md
index 78065c7e..46308a8e 100644
--- a/Samples/BackgroundTask/README.md
+++ b/Samples/BackgroundTask/README.md
@@ -1,8 +1,8 @@
-Background task sample
-======================
+
+# Background task sample
This sample shows you how to create and register background tasks using the Windows Runtime background task API.
@@ -29,10 +29,7 @@ To obtain an evaluation copy of Microsoft Visual Studio 2013, go to [Visual Stu
**Note** For Windows 8 app samples, download the [Windows 8 app samples pack](http://go.microsoft.com/fwlink/p/?LinkId=301698). The samples in the Windows 8 app samples pack will build and run only on Microsoft Visual Studio 2012.
-Related topics
---------------
-
-****
+## Related topics
[Displaying tiles on the lock screen](http://msdn.microsoft.com/library/windows/apps/hh868260)
@@ -50,13 +47,11 @@ Related topics
[**Windows.UI.WebUI.WebUIBackgroundTaskInstance (HTML)**](http://msdn.microsoft.com/library/windows/apps/hh701740)
-Related technologies
---------------------
+## Related technologies
[**Windows.ApplicationModel.Background**](http://msdn.microsoft.com/library/windows/apps/br224847)
-Operating system requirements
------------------------------
+## Operating system requirements
Client
@@ -70,15 +65,14 @@ Phone
Windows Phone 10
-Build the sample
-----------------
+## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory named for the sample and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
**Deploying the sample**
@@ -113,8 +107,7 @@ Add the BackgroundTaskSample app to the lock screen manually:
**Note** The minimum delay for creating TimeTrigger events is 15 minutes. The first timer event, however, might not occur until 15 minutes after it is expected to expire (30 minutes after the app registers the event).
-Read more
----------
+## Read more
See the following topics for step-by-step information about using background tasks:
diff --git a/Samples/BackgroundTransfer/README.md b/Samples/BackgroundTransfer/README.md
index f3a18696..cabb236f 100644
--- a/Samples/BackgroundTransfer/README.md
+++ b/Samples/BackgroundTransfer/README.md
@@ -1,7 +1,8 @@
-# Background Transfer sample
+
+# Background transfer sample
This sample shows how to use the Background Transfer API to download and upload files in the background in Universal Windows Platform (UWP) apps.
@@ -67,10 +68,10 @@ For more information on network capabilities, see [How to set network capabiliti
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
### Deploying and running the Windows version of the sample
@@ -123,8 +124,7 @@ The remote server address and local filename fields should be updated. This can
To deploy and run the Windows version of the sample:
-1. Right-click **BackgroundTransfer.Windows** in **Solution Explorer** and select **Set as StartUp Project**.
-2. To debug the sample and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.
### Deploying and running the Windows Phone version of the sample
@@ -135,6 +135,4 @@ IIS is not available on Windows Phone. For the app to access a web server, there
To deploy and run the Windows Phone version of the sample:
-1. Right-click **BackgroundTransfer.WindowsPhone** in **Solution Explorer** and select **Set as StartUp Project**.
-2. To debug the sample and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
-
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.
diff --git a/Samples/BarcodeScanner/README.md b/Samples/BarcodeScanner/README.md
index e4daa185..9e553507 100644
--- a/Samples/BarcodeScanner/README.md
+++ b/Samples/BarcodeScanner/README.md
@@ -1,7 +1,8 @@
-# Barcode Scanner Sample
+
+# Barcode scanner sample
This sample shows how to create a barcode scanner, claim it for exclusive use, enable it to receive data, and read a barcode. This sample uses [**Windows.Devices.PointOfService**](http://msdn.microsoft.com/library/windows/apps/dn298071) API.
@@ -61,9 +62,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Barometer/README.md b/Samples/Barometer/README.md
index cc83a015..793ed48d 100644
--- a/Samples/Barometer/README.md
+++ b/Samples/Barometer/README.md
@@ -29,9 +29,10 @@ When you choose the **Get Data** button for the **Polling** option, the app will
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/BasicFaceDetection/README.md b/Samples/BasicFaceDetection/README.md
index 0910d2c9..ec7928a4 100644
--- a/Samples/BasicFaceDetection/README.md
+++ b/Samples/BasicFaceDetection/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-Basic Face Detection sample
---------------------
+# Basic face detection sample
This sample shows how to use the Windows.Media.FaceAnalysis.FaceDetector WinRT class to find human faces within a still image.
@@ -63,9 +62,10 @@ The FaceDetector is intended to operate on a static image or a single frame of v
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/BasicFaceTracking/README.md b/Samples/BasicFaceTracking/README.md
index 28614142..7fc52df0 100644
--- a/Samples/BasicFaceTracking/README.md
+++ b/Samples/BasicFaceTracking/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-Basic Face Tracking sample
---------------------
+# Basic face tracking sample
This sample shows how to use the Windows.Media.FaceAnalysis.FaceTracker WinRT class to find human faces within an video stream.
@@ -53,9 +52,10 @@ The FaceTracker is intended to operate on a running video stream and is optimize
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/BasicInput/README.md b/Samples/BasicInput/README.md
index 08c12694..d678c392 100644
--- a/Samples/BasicInput/README.md
+++ b/Samples/BasicInput/README.md
@@ -2,7 +2,7 @@
category: CustomUserInteractions
---!>
-# Basic Input sample
+# Basic input sample
This sample shows how to handle input in Universal Windows Apps.
@@ -46,9 +46,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/BasicMediaCasting/README.md b/Samples/BasicMediaCasting/README.md
index d007e253..897bff7d 100644
--- a/Samples/BasicMediaCasting/README.md
+++ b/Samples/BasicMediaCasting/README.md
@@ -1,8 +1,8 @@
-Basic Media Casting Sample
------------
+
+# Basic media casting sample
This sample shows how to use the APIs in the **Windows.Media.Casting** namespace to render media on a remote device. It covers sending media to various devices- Miracast, DLNA, and Bluetooth. For more advanced functionality see the *Advanced Casting Sample*.
@@ -37,9 +37,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/BluetoothAdvertisement/README.md b/Samples/BluetoothAdvertisement/README.md
index ae56fbd5..9b0f74eb 100644
--- a/Samples/BluetoothAdvertisement/README.md
+++ b/Samples/BluetoothAdvertisement/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Bluetooth Advertisement Watcher and Publisher
+# Bluetooth advertisement sample
This sample demonstrates use of the [**Bluetooth Advertisement**](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.devices.bluetooth.advertisement.aspx) Runtime API to send and receive Bluetooth Low Energy advertisements.
@@ -12,6 +12,8 @@ This sample allows the user to publish and watch for Bluetooth Low Energy advert
- **Background watcher**: Scanning for a particular LE advertisement containing a matching manufacturer data section and above a certain RSSI threshold using a background trigger and task.
- **Background publisher**: Publishing a LE advertisement in the background. The advertisement generated by this scenario can be received by running Scenario 1 or 3 on another Windows platform in close proximity with this one.
+**Note:** A working Bluetooth dongle/radio is needed in order to test this sample's functionality. The VS Emulator is a valid target, but since there's technically no valid Bluetooth, the app will treat it as if there's no Bluetooth radio and beacon functionality cannot be used.
+
## System requirements
**Client:** Windows 10
@@ -22,9 +24,10 @@ This sample allows the user to publish and watch for Bluetooth Low Energy advert
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CameraFaceDetection/README.md b/Samples/CameraFaceDetection/README.md
index 40b2e58c..ebc1ffcd 100644
--- a/Samples/CameraFaceDetection/README.md
+++ b/Samples/CameraFaceDetection/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-CameraFaceDetection Sample
---------------------
+# Camera face detection sample
This sample applies an end-to-end approach to demonstrate how to write a camera application using the Windows.Media.Capture API in conjunction with orientation sensors to cover the functions that most camera apps will require. In addition, it will show a simple way to use the Face Detection effect included in Windows. This sample is based on the CameraStarterKit.
@@ -66,9 +65,10 @@ This sample also implements a custom UI to better simulate the experience that a
## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CameraGetPreviewFrame/README.md b/Samples/CameraGetPreviewFrame/README.md
index abdce55b..9cb345a6 100644
--- a/Samples/CameraGetPreviewFrame/README.md
+++ b/Samples/CameraGetPreviewFrame/README.md
@@ -1,9 +1,8 @@
-
-CameraGetPreviewFrame Sample
-----------------------------
+# Camera preview frame sample
This sample applies an end-to-end approach to demonstrate how to write a camera application using the Windows.Media.Capture API in conjunction with the DisplayInformation API to acquire preview frames from the camera stream for further processing.
@@ -58,9 +57,10 @@ Due to the custom UI that this sample implements, any messages intended for the
## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CameraHdr/README.md b/Samples/CameraHdr/README.md
index 5aa4fe6b..59c75b7d 100644
--- a/Samples/CameraHdr/README.md
+++ b/Samples/CameraHdr/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-CameraHdr Sample
-----------------
+# High dynamic range sample
This sample applies an end-to-end approach to demonstrate how to write a video recording camera application using the Windows.Media.Capture API in conjunction with orientation sensors to cover the functions that most camera apps will require. It will also use the Windows.Media.Core.SceneAnalysisEffect API to get information about the preview scene and give a recommendation on how beneficial an HDR capture would be. In addition, it will show a simple way to use the Windows.Media.Capture.AdvancedCapture API, which enables High Dynamic Range (HDR) captures, included in Windows. This sample is based on the CameraStarterKit.
@@ -67,9 +66,10 @@ This sample also implements a custom UI to better simulate the experience that a
## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CameraProfile/README.md b/Samples/CameraProfile/README.md
index 3991ed56..e0eb35ba 100644
--- a/Samples/CameraProfile/README.md
+++ b/Samples/CameraProfile/README.md
@@ -1,9 +1,8 @@
-
-CameraProfile Sample
---------------------
+# Camera profiles sample
This sample demonstrates a new extension to Windows.Media.Capture.MediaCaptureInitializationSettings API. This new API allows for application
developer to query a device for a collection of media types that can work together on a given device called a Video Profile. These new Video Profiles
@@ -55,9 +54,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/CameraStarterKit/README.md b/Samples/CameraStarterKit/README.md
index 2345a883..caed8e13 100644
--- a/Samples/CameraStarterKit/README.md
+++ b/Samples/CameraStarterKit/README.md
@@ -1,9 +1,8 @@
-
-CameraStarterKit Sample
------------------------
+# Basic camera app sample
This sample applies an end-to-end approach to demonstrate how to write a camera application using the Windows.Media.Capture API in conjunction with orientation sensors to cover the functions that most camera apps will require.
@@ -63,9 +62,10 @@ This sample also implements a custom UI to better simulate the experience that a
## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CameraVideoStabilization/README.md b/Samples/CameraVideoStabilization/README.md
index 019ff29e..a1446f7c 100644
--- a/Samples/CameraVideoStabilization/README.md
+++ b/Samples/CameraVideoStabilization/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-CameraVideoStabilization Sample
--------------------------------
+# Video stabilization sample
This sample applies an end-to-end approach to demonstrate how to write a video recording camera application using the Windows.Media.Capture API in conjunction with orientation sensors to cover the functions that most camera apps will require. In addition, it will show a simple way to use the Video Stabilization effect included in Windows. This sample is based on the CameraStarterKit.
@@ -66,9 +65,10 @@ This sample also implements a custom UI to better simulate the experience that a
## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CashDrawer/README.md b/Samples/CashDrawer/README.md
index 8a84f638..887f6963 100644
--- a/Samples/CashDrawer/README.md
+++ b/Samples/CashDrawer/README.md
@@ -1,7 +1,8 @@
-# Cash Drawer Sample
+
+# Cash drawer sample
This sample demonstrates the use of the [**Windows.Devices.PointOfService.CashDrawer**](http://msdn.microsoft.com/library/windows/apps/dn298071) API.
@@ -48,9 +49,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Clipboard/README.md b/Samples/Clipboard/README.md
index c2ef7725..0c4d1ad3 100644
--- a/Samples/Clipboard/README.md
+++ b/Samples/Clipboard/README.md
@@ -2,7 +2,7 @@
category: ControlsLayoutAndText
--->
-# Clipboard app sample
+# Clipboard sample
This sample demonstrates how an app can use clipboard commands, including copy, paste, cut, and move. This sample uses classes from the [**Windows.ApplicationModel.DataTransfer**](http://msdn.microsoft.com/library/windows/apps/br205967) namespace. Some of the classes you might want to review in more detail include the [**Clipboard**](http://msdn.microsoft.com/library/windows/apps/br205867) class, which accesses the Clipboard, and the [**DataPackage**](http://msdn.microsoft.com/library/windows/apps/br205873) class, which you use to package the content before adding it to the Clipboard.
@@ -42,9 +42,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Compass/README.md b/Samples/Compass/README.md
index e891adac..ff79f23d 100644
--- a/Samples/Compass/README.md
+++ b/Samples/Compass/README.md
@@ -38,9 +38,10 @@ Allows the user to simulate sensor accuracy and demonstrates usage of the calibr
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ComplexInk/README.md b/Samples/ComplexInk/README.md
index 4c056f83..88cb33ee 100644
--- a/Samples/ComplexInk/README.md
+++ b/Samples/ComplexInk/README.md
@@ -1,7 +1,9 @@
-# ComplexInk sample
+
+# Complex inking sample
+
This sample demonstrates how to use advanced InkPresenter functionality to achieve scenarios such as interleaving ink with other objects, selecting ink, copy/paste, and event handling. It is built upon the Universal Windows Platform (UWP) in C++ and can run on both Desktop and Mobile Windows 10 SKUs.
Specifically, this sample covers using the [**Windows.UI.Input.Inking**](http://msdn.microsoft.com/library/windows/apps/br208524) APIs to:
@@ -43,9 +45,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
----------------
-1. Start Visual Studio 2015 and select **File \> Open \> Project/Solution**.
-2. Go to the directory in which you downloaded the sample. Go to the directory named for the sample, and double-click the Microsoft Visual Studio Solution (.sln) file.
-3. Press Ctrl+Shift+B or use **Build \> Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
--------------
diff --git a/Samples/Compression/README.md b/Samples/Compression/README.md
index e114fa3c..a0940142 100644
--- a/Samples/Compression/README.md
+++ b/Samples/Compression/README.md
@@ -1,5 +1,8 @@
-Compression sample
-==================
+
+
+# Compression sample
This sample demonstrates how to read structured data from a file and write compressed data to a new file and how to read compressed data and write decompressed data to a new file.
@@ -18,8 +21,7 @@ Specifically, this sample shows the following:
To obtain the Windows 10 developer tools preview, go to [Windows 10 developer tools](https://dev.windows.com/en-us/downloads/windows-10-developer-tools).
-Operating system requirements
------------------------------
+## Operating system requirements
Client
@@ -33,19 +35,14 @@ Phone
Windows 10 Mobile
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 RC and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory named for the sample and double-click the Visual Studio 2015 RC Solution (.sln) file.
-3. Follow the steps for the version of the sample you want:
- - To build the sample:
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
- 1. Select **Compression** in **Solution Explorer**.
- 2. Press Ctrl+Shift+B, or use **Build** \> **Build Solution**, or use **Build** \> **Build Compression**.
-
-Run the sample
---------------
+## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
diff --git a/Samples/ContentIndexer/README.md b/Samples/ContentIndexer/README.md
index 0b5201f7..6a214124 100644
--- a/Samples/ContentIndexer/README.md
+++ b/Samples/ContentIndexer/README.md
@@ -1,4 +1,8 @@
-# ContentIndexer sample
+
+
+# Content indexer sample
This sample shows how to add, update, and retrieve items and properties from the indexer. Two methods of doing so are demonstrated. The first is using the ContentIndexer APIs to directly interface with the indexer. The second is writing .appcontent-ms files, which contain information to be indexed that the indexer will pick up once the file has been written.
@@ -60,9 +64,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ContextMenu/README.md b/Samples/ContextMenu/README.md
index 57f4286d..7523ab61 100644
--- a/Samples/ContextMenu/README.md
+++ b/Samples/ContextMenu/README.md
@@ -41,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CortanaVoiceCommand/README.md b/Samples/CortanaVoiceCommand/README.md
index 21d638a8..5147dd96 100644
--- a/Samples/CortanaVoiceCommand/README.md
+++ b/Samples/CortanaVoiceCommand/README.md
@@ -1,7 +1,8 @@
-# Cortana Voice Command Sample
+
+# Cortana voice command sample
This sample demonstrates integrating with Cortana to provide Voice Command Definitions (VCDs) that allow an application to be invoked in a variety of ways.
@@ -38,7 +39,7 @@ The sample also includes a basic application in order to demonstrate how to inte
## Setup
1. Ensure Cortana is signed in with an MSA account. This can be achieved by opening Cortana once and following the sign-in process.
-2. Run the application normally once (eg, via F5 debug or deploy/launch). This installs the voice command definitions.
+2. Follow the steps in the "Build the sample" section below, then run the application normally once (using either F5 to debug or deploying and then launching normally). This installs the voice command definitions.
3. Close the app.
4. Click on the microphone icon in Cortana's search bar.
5. Say one of the supported voice commands (see below)
@@ -74,4 +75,32 @@ Duplicates can also be handled. For an example of handling disambiguation, add a
## System requirements
-Cortana requires an appropriate recording device, and the system must be associated with a Microsoft Account in order for Cortana to function.
\ No newline at end of file
+**Client:** Windows 10
+
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
+
+Cortana requires an appropriate recording device, and the system must be associated with a Microsoft Account in order for Cortana to function.
+
+## Build the sample
+
+**Note:** This sample has special instructions in the Setup section above.
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
+
diff --git a/Samples/CortanaVoiceCommand/js/AdventureWorks/js/voiceCommandService.js b/Samples/CortanaVoiceCommand/js/AdventureWorks/js/voiceCommandService.js
index 185e074a..4845e9db 100644
--- a/Samples/CortanaVoiceCommand/js/AdventureWorks/js/voiceCommandService.js
+++ b/Samples/CortanaVoiceCommand/js/AdventureWorks/js/voiceCommandService.js
@@ -246,7 +246,7 @@ var appService = Windows.ApplicationModel.AppService;
completedMessage.spokenMessage = "Okay, Keeping the trip to " + destination;
var response = voiceCommands.VoiceCommandResponse.createResponse(completedMessage);
- return voiceServiceConnection.reportSuccessAsync(completedMessage);
+ return voiceServiceConnection.reportSuccessAsync(response);
}
}
}).done();
diff --git a/Samples/CredentialPicker/README.md b/Samples/CredentialPicker/README.md
index 2fe47863..34848ccf 100644
--- a/Samples/CredentialPicker/README.md
+++ b/Samples/CredentialPicker/README.md
@@ -1,4 +1,10 @@
-This sample shows how to use the Windows.Security.Credentials.UI.CredentialPicker class to retrieve credentials, which can then be passed to APIs that may require credentials (for example, HttpClient). This can be used in support of single sign on (SSO).
+
+
+# Credential picker sample
+
+This sample shows how to use the Windows.Security.Credentials.UI.CredentialPicker class to retrieve credentials, which can then be passed to APIs that may require credentials (for example, HttpClient). This can be used in support of single sign on (SSO).
**Note** This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 10 and Windows Phone 10.
@@ -21,9 +27,10 @@ Related topics
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/CustomHidDeviceAccess/README.md b/Samples/CustomHidDeviceAccess/README.md
index 9e5ea4ff..5026fe07 100644
--- a/Samples/CustomHidDeviceAccess/README.md
+++ b/Samples/CustomHidDeviceAccess/README.md
@@ -2,8 +2,7 @@
category: DevicesSensorsAndPower
--->
-Custom HID Device Access Sample
-===============================
+# Custom HID device sample
This sample shows how to use the [**Windows.Devices.HumanInterfaceDevices**](http://msdn.microsoft.com/library/windows/apps/dn264174) API. It was designed to work with a programmable, USB-based, HID device called the SuperMUTT.
@@ -65,8 +64,7 @@ When you press the **Stop Device Watcher** button, the app executes code that di
Also, whenever the app is suspended, it executes code that disconnects from the SuperMUTT device.
-Operating system requirements
------------------------------
+## Operating system requirements
**Client:** Windows 10
@@ -74,25 +72,24 @@ Operating system requirements
**Phone:** Windows 10
-Build the sample
-----------------
+## Build the sample
-To build this sample, open the solution (.sln) file from Visual Studio. Press Ctrl+Shift+B, or select Build \> Build Solution.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To run this sample after building it, press F5 (run with debugging enabled) or Ctrl+F5 (run without debugging enabled) from Visual Studio. (Or select the corresponding options from the Debug menu.)
-Device Driver Requirements
---------------------------
+## Device Driver Requirements
The sample runs over the inbox USB and HID device-drivers that ship in Windows. These device drivers are installed when you first attach the SuperMUTT device.
Note that the **Windows.Devices.HumanInterfaceDevice** API does not support custom, or filter, drivers.
-Understanding the app manifest
-------------------------------
+## Understanding the app manifest
The app manifest is an XML document that contains the info the system needs to deploy, display, or update a Windows Store app. This info includes package identity, package dependencies, required capabilities, visual elements, and extensibility points. Every app package must include one package manifest.
@@ -118,8 +115,7 @@ In the following vendor-defined usage data, the device is identified by the **Ve
```
-Configuring the SuperMUTT firmware
-----------------------------------
+## Configuring the SuperMUTT firmware
The following steps allow you to configure the SuperMUTT device to run with your sample.
@@ -144,8 +140,7 @@ If needed, the you can revert the SuperMUTT from HID device-mode back to its def
MuttUtil.exe -hidtodefault
```
-Limitations
------------
+## Limitations
**Designed for Peripherals**
diff --git a/Samples/CustomSensors/README.md b/Samples/CustomSensors/README.md
index 5f775802..30aea0ba 100644
--- a/Samples/CustomSensors/README.md
+++ b/Samples/CustomSensors/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Custom Sensors sample
+# Custom sensors sample
This sample demonstrates the use of the Windows.Devices.Sensors.Custom sensor API.
@@ -29,9 +29,10 @@ When you click on the **Get CO2 level** button for the **Polling** option, the a
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/CustomSerialDeviceAccess/README.md b/Samples/CustomSerialDeviceAccess/README.md
index dcb9453a..69766a22 100644
--- a/Samples/CustomSerialDeviceAccess/README.md
+++ b/Samples/CustomSerialDeviceAccess/README.md
@@ -2,8 +2,7 @@
category: DevicesSensorsAndPower
--->
-Custom Serial Device Sample
-===========================
+# Custom serial device sample
This sample demonstrates the use of the Windows.Devices.SerialCommunication WinRT APIs to communicate with a Serial device.
@@ -30,19 +29,19 @@ This scenario demonstrates the use of Input and Output streams on the SerialDevi
This scenario demonstrates the use of event notification APIs provided by Windows.Devices.SerialCommunication for **Pin Changed** and **Error Received** event types.
-Operating system requirements
------------------------------
+## Operating system requirements
**Client:** Windows 10
**Server:** Windows 10
-Build the sample
-----------------
+## Build the sample
-To build this sample, open the solution (.sln) file from Visual Studio. Press Ctrl+Shift+B, or select Build \> Build Solution.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To run this sample after building it, press F5 (run with debugging enabled) or Ctrl+F5 (run without debugging enabled) from Visual Studio. (Or select the corresponding options from the Debug menu.)
diff --git a/Samples/CustomUsbDeviceAccess/README.md b/Samples/CustomUsbDeviceAccess/README.md
index aa90e52f..bc2353cc 100644
--- a/Samples/CustomUsbDeviceAccess/README.md
+++ b/Samples/CustomUsbDeviceAccess/README.md
@@ -2,8 +2,7 @@
category: DevicesSensorsAndPower
--->
-Custom USB device access sample
-===============================
+# Custom USB device sample
This sample shows how to communicate with a USB device by using the [**Windows.Devices.Usb**](http://msdn.microsoft.com/library/windows/apps/dn278466) namespace. The sample can communicate with these devices:
@@ -22,8 +21,7 @@ The sample demonstrates these key scenarios:
For step-by-step instructions about implementing USB features in a Windows Store app, see [Talking to USB devices, start to finish](http://msdn.microsoft.com/library/windows/apps/dn312121) and [Writing a Windows store app for a USB device](http://msdn.microsoft.com/library/windows/apps/dn303355).
-Code Structure
---------------
+## Code Structure
* **App**
@@ -87,8 +85,7 @@ Code Structure
For more information, see [this topic](http://go.microsoft.com/fwlink/p/?linkid=306314) about sync-ing with a device.
-**App manifest package**
-------------------------
+## App manifest package
The sample adds the [**DeviceCapability**](http://msdn.microsoft.com/library/windows/apps/br211430) element in the Package.appxmanifest file. Device information includes the device's vendor/product Ids and device class information. For OSRFX2 and SuperMUTT devices, the device class is specified by indicating the device class code and a string for the code.
@@ -111,8 +108,7 @@ The sample adds the [**DeviceCapability**](http://msdn.microsoft.com/library/win
```
-Related technologies
---------------------
+## Related technologies
* [**Windows.Devices.Usb**](http://msdn.microsoft.com/library/windows/apps/dn278466)
@@ -138,15 +134,13 @@ Related technologies
Writes data to an output stream. Used for writing data to a USB pipe.
-Operating system requirements
------------------------------
+## Operating system requirements
* **Client:** Windows 10
* **Server:** Windows Server 2016 Technical Preview
-Driver requirements
--------------------
+## Driver requirements
The sample app communicates with the device through the Microsoft-provided kernel-mode driver, Winusb.sys. You must install it as the device driver.
@@ -164,8 +158,7 @@ When you connect your device, you might notice that Windows loads Winusb.sys aut
5. From the list of device classes, select **Universal Serial Bus devices**.
6. The wizard displays **WinUsb Device**. Select it to load the driver.
-If you are using the OSRFX2 device...
--------------------------------------
+## If you are using the OSRFX2 device...
The preceding procedure does not add a device interface GUID for the app to access the device. You must add the GUID manually by following this procedure.
@@ -180,8 +173,7 @@ The preceding procedure does not add a device interface GUID for the app to acce
**Note** If you change the physical port then you must repeat steps 1 through 4.
-If you are using the SuperMUTT device...
-----------------------------------------
+## If you are using the SuperMUTT device...
Windows automatically loads Winusb.sys as the device driver. Otherwise, manually install the driver by using the preceding instructions.
@@ -196,9 +188,7 @@ Windows automatically loads Winusb.sys as the device driver. Otherwise, manually
The SuperMUTT device when configured in WinRTUsbPersonality mode, exposes configuration, interfaces, and endpoints, that work with the sample.
-
-Customizing the sample for your device
---------------------------------------
+## Customizing the sample for your device
You can extend this sample for your device by performing these tasks.
@@ -207,12 +197,13 @@ You can extend this sample for your device by performing these tasks.
If you specify the device class code, make sure that it is supported. For a list of supported device classes see [How to add USB device capabilities to the app manifest](https://msdn.microsoft.com/en-us/library/windows/apps/dn303351).
-Build the sample
-----------------
+## Build the sample
-To build this sample, open the solution (.sln) file from Visual Studio. Press Ctrl+Shift+B, or select Build \> Build Solution.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To run this sample after building it, press F5 (run with debugging enabled) or Ctrl+F5 (run without debugging enabled) from Visual Studio. (Or select the corresponding options from the Debug menu.)
diff --git a/Samples/D2DCustomEffects/README.md b/Samples/D2DCustomEffects/README.md
index f0b45cdd..c5976abe 100644
--- a/Samples/D2DCustomEffects/README.md
+++ b/Samples/D2DCustomEffects/README.md
@@ -50,9 +50,10 @@ Related DirectX app APIs:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/D2DGradientMesh/README.md b/Samples/D2DGradientMesh/README.md
index 352d2d1d..3d9407f1 100644
--- a/Samples/D2DGradientMesh/README.md
+++ b/Samples/D2DGradientMesh/README.md
@@ -2,8 +2,7 @@
category: GraphicsAndAnimation
--->
-Direct2D gradient mesh sample
-=============================
+# Direct2D gradient mesh sample
This sample demonstrates how to instantiate and render a gradient mesh in [Direct2D](http://msdn.microsoft.com/en-us/library/windows/desktop/dd370990). This samples uses the helper method provided by Direct2D to create a mesh consisting of two tensor patches that share a side.
@@ -13,7 +12,34 @@ Some important APIs used in this sample are:
- The [**ID2D1DeviceContext2::CreateGradientMesh**](http://msdn.microsoft.com/en-us/library/windows/desktop/dn890790) method, which creates an [**ID2D1GradientMesh**](http://msdn.microsoft.com/en-us/library/windows/desktop/dn900410) object on the Direct2D device.
- The [**ID2D1DeviceContext2::DrawGradientMesh**](http://msdn.microsoft.com/en-us/library/windows/desktop/dn900378) method, which renders the ID2D1GradientMesh object to the device context.
-Related topics
---------------
+## Related topics
+
+[**D2D1\_GRADIENT\_MESH\_PATCH** structure](http://msdn.microsoft.com/en-us/library/windows/desktop/dn890726)
+
+## System requirements
+
+**Client:** Windows 10
+
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
-[**D2D1\_GRADIENT\_MESH\_PATCH** structure](http://msdn.microsoft.com/en-us/library/windows/desktop/dn890726)
\ No newline at end of file
diff --git a/Samples/D2DPhotoAdjustment/README.md b/Samples/D2DPhotoAdjustment/README.md
index 48cfd231..85a8f879 100644
--- a/Samples/D2DPhotoAdjustment/README.md
+++ b/Samples/D2DPhotoAdjustment/README.md
@@ -12,6 +12,14 @@ Specifically, this sample shows how to:
- Setup and control a photo photo editing pipeline
- Hook up UI in XAML
+This sample uses the following Direct2D effects:
+- [Color management](http://msdn.microsoft.com/en-us/library/windows/desktop/hh706318)
+- [Straighten](http://msdn.microsoft.com/en-us/library/windows/desktop/dn900462)
+- [Temperature and tint](http://msdn.microsoft.com/en-us/library/windows/desktop/dn900463)
+- [Saturation](http://msdn.microsoft.com/en-us/library/windows/desktop/hh706369)
+- [Contrast](http://msdn.microsoft.com/en-us/library/windows/desktop/dn890716)
+- [Highlights and Shadows](http://msdn.microsoft.com/en-us/library/windows/desktop/dn890773)
+
**Note** The Windows universal samples require Visual Studio 2015 to build and Windows 10 to execute.
To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.com/fwlink/?LinkID=532421)
@@ -49,9 +57,33 @@ Related APIs:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+## System requirements
+
+**Client:** Windows 10
+
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
+
## Run the sample
diff --git a/Samples/DWriteLineSpacingModes/README.md b/Samples/DWriteLineSpacingModes/README.md
index abed92b5..b058024a 100644
--- a/Samples/DWriteLineSpacingModes/README.md
+++ b/Samples/DWriteLineSpacingModes/README.md
@@ -2,7 +2,7 @@
category: ControlsLayoutAndText
--->
-#DirectWrite Text Layout Line Spacing Modes Sample
+# Line spacing (DirectWrite) sample
This sample demonstrates how to use different line spacing options that are provided for the DirectWrite text layout API.
@@ -54,9 +54,10 @@ Other files are boilerplate files used for UWP sample apps.
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** > **Open** > **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** > **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/DWriteTextLayoutCloudFont/README.md b/Samples/DWriteTextLayoutCloudFont/README.md
index 87b98bd8..c7624149 100644
--- a/Samples/DWriteTextLayoutCloudFont/README.md
+++ b/Samples/DWriteTextLayoutCloudFont/README.md
@@ -2,7 +2,7 @@
category: ControlsLayoutAndText
--->
-#DirectWrite Text Layout Downloadable Fonts Integration Sample
+# Downloadable fonts (DirectWrite) sample
This sample demonstrates how to use DirectWrite downloadable fonts, a feature added in Windows 10, together with the DirectWrite text layout API.
@@ -57,9 +57,10 @@ The ClearDownloadableFontCache.ps1 file is not part of the sample project itself
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/DataReaderWriter/README.md b/Samples/DataReaderWriter/README.md
index 075f1ad7..393ca05e 100644
--- a/Samples/DataReaderWriter/README.md
+++ b/Samples/DataReaderWriter/README.md
@@ -1,8 +1,8 @@
-# Reading and writing data sample
+# Serializing and deserializing data sample
This sample shows how to use the [**DataReader**](http://msdn.microsoft.com/library/windows/apps/br208119) and [**DataWriter**](http://msdn.microsoft.com/library/windows/apps/br208154) classes to store and retrieve data. Specifcially, this sample demonstrates the following scenarios:
@@ -39,9 +39,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
@@ -54,3 +55,4 @@ The next steps depend on whether you just want to deploy the sample or you want
### Deploying and running the sample
- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
+
diff --git a/Samples/DatagramSocket/README.md b/Samples/DatagramSocket/README.md
index 99b50919..cca746b0 100644
--- a/Samples/DatagramSocket/README.md
+++ b/Samples/DatagramSocket/README.md
@@ -1,6 +1,7 @@
+
# DatagramSocket sample
This sample shows you how to a use datagram (UDP) socket to send and receive data using the [**DatagramSocket**](http://msdn.microsoft.com/library/windows/apps/br241319) and related classes in the [**Windows.Networking.Sockets**](http://msdn.microsoft.com/library/windows/apps/br226960) namespace in your Universal Windows Platform (UWP) app.
@@ -100,10 +101,10 @@ This sample requires that network capabilities be set in the *Package.appxmanife
## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
@@ -111,9 +112,9 @@ The next steps depend on whether you just want to deploy the sample or you want
### Deploying the sample
-- Select **Build** \> **Deploy Solution**.
+- Select Build > Deploy Solution.
### Deploying and running the sample
-- Press F5 or use **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
diff --git a/Samples/DeviceEnumeration/README.md b/Samples/DeviceEnumeration/README.md
index 38970cf3..597fd29d 100644
--- a/Samples/DeviceEnumeration/README.md
+++ b/Samples/DeviceEnumeration/README.md
@@ -1,5 +1,8 @@
-Device enumeration sample
-=========================
+
+
+# Device enumeration sample
This sample shows how to use the Windows.Devices.Enumeration APIs find devices internally connected to the system, externally connected, or nearby over wireless or networking protocols and get information about them. It also shows how to pair wireless and networking devices with the system.
@@ -22,8 +25,7 @@ The sample demonstrates eight scenarios:
8. Pair Device: This scenario demonstrates how to pair a device with the system. It uses DeviceInformation.PairAsync on a DeviceInformation which is of kind DeviceInformationKind.AssociationEndpoint. e.g. This method can be used to pair devices like WiFi Direct, WSD, or UPnP device. Bluetooth is not supported at this time, but will be in a future release.
-Related topics
---------------
+## Related topics
[Enumerating devices article](http://msdn.microsoft.com/en-us/library/windows/apps/Hh464977)
@@ -31,39 +33,30 @@ Related topics
[Windows Universal App Samples](https://github.com/Microsoft/Windows-universal-samples)
+## System requirements
-Operating system requirements
------------------------------
+**Client:** Windows 10
-Client
+**Server:** Windows Server 2016 Technical Preview
-Windows 10
+**Phone:** Windows 10
-Server
+## Build the sample
-None supported
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Phone
-
-Windows Phone 10
-
-Build the sample
-----------------
-
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio Solution (.sln) file.
-3. Select the appropriate target: x86, x64, ARM. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-
-Run the sample
---------------
+## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
-**Deploying the sample**
+## Deploying the sample
-1. Select **Build** \> **Deploy Solution**.
+- Select Build > Deploy Solution.
-**Deploying and running the sample**
+### Deploying and running the sample
-1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select**Debug** \> **Start Without Debugging**.
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
diff --git a/Samples/DpiScaling/README.md b/Samples/DpiScaling/README.md
index aaf3f482..bfd96c6f 100644
--- a/Samples/DpiScaling/README.md
+++ b/Samples/DpiScaling/README.md
@@ -1,6 +1,7 @@
+
# Scaling according to DPI sample
This sample describes how to build an app that scales according to the dots per inch (dpi) (pixel density) of the screen by loading images of the right scale or by overriding default scaling. This sample uses the [**Windows.Graphics.Display**](http://msdn.microsoft.com/library/windows/apps/br226166) API.
@@ -35,9 +36,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/DpiScaling/shared/assets/projector-stretch.png b/Samples/DpiScaling/shared/assets/projector-stretch.png
new file mode 100644
index 00000000..23de0dc1
Binary files /dev/null and b/Samples/DpiScaling/shared/assets/projector-stretch.png differ
diff --git a/Samples/DpiScaling/shared/assets/projector.scale-100.png b/Samples/DpiScaling/shared/assets/projector.scale-100.png
new file mode 100644
index 00000000..d93e1154
Binary files /dev/null and b/Samples/DpiScaling/shared/assets/projector.scale-100.png differ
diff --git a/Samples/DpiScaling/shared/assets/projector.scale-140.png b/Samples/DpiScaling/shared/assets/projector.scale-140.png
new file mode 100644
index 00000000..4041d5c8
Binary files /dev/null and b/Samples/DpiScaling/shared/assets/projector.scale-140.png differ
diff --git a/Samples/DpiScaling/shared/assets/projector.scale-180.png b/Samples/DpiScaling/shared/assets/projector.scale-180.png
new file mode 100644
index 00000000..2d3f7396
Binary files /dev/null and b/Samples/DpiScaling/shared/assets/projector.scale-180.png differ
diff --git a/Samples/DpiScaling/shared/assets/projector.svg b/Samples/DpiScaling/shared/assets/projector.svg
new file mode 100644
index 00000000..35ffe4ed
--- /dev/null
+++ b/Samples/DpiScaling/shared/assets/projector.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/DpiScaling/shared/xaml/Scenario1.xaml b/Samples/DpiScaling/shared/xaml/Scenario1.xaml
new file mode 100644
index 00000000..83c56d23
--- /dev/null
+++ b/Samples/DpiScaling/shared/xaml/Scenario1.xaml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Loading images
+
+
+
+
+
+
+ Based on the screen's pixel density (DPI) and resolution, Windows scales images and
+ other UI elements to maintain physical sizing across devices. We recommend that you make your
+ app scaling aware by providing multiple versions of these assets
+ so that they retain quality across different scales. If you don't provide multiple versions,
+ Windows will stretch your assets by default.
+
+ This scenario demonstrates different methods you can use to ensure
+ that Windows loads the correct asset depending on scaling. It also shows what
+ would have happened if you hadn't provided multiple assets.
+ You can choose a scaling method
+ based on your app's specific scenarios.
+ Use the descriptions below as a guide.
+ In some cases, you might want to use multiple methods.
+
+
+ Use the simulator to view this scenario at different scales on the PC.
+ For the 100% scale, use the 10.6" 1366x768 resolution setting. For 140% use 10.6"
+ 1920x1080 and for 180% use 10.6" 2560x1440.
+ Other scales are possible on phones and other devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not scaling aware (not recommended)
+
+
+ If only one version of an asset is provided, then the app is not scaling aware.
+ The asset is distorted at scales other than 100%.
+
+
+
+
+
+
+
+
+ Scaled packaged assets
+
+
+ The framework can select an asset from your package based on
+ the current DPI. Include multiple versions of each asset
+ using the following naming convention: image.scale-100.png, image.scale-140.png
+ and image.scale-180.png. When you use "image.png" within your app, Windows will
+ select an asset based on the current scale.
+
+ The XAML framework selects the
+ image when the view is first loaded and will also change the asset
+ if the scale changes (for example, if the app is moved to a different
+ monitor). No additional code is required for dynamic reloading.
+
+ Note: Text has been added to the image above in order to make clear which version of the
+ image is loaded.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Vector Graphics Using XAML Path
+
+
+ To use vector images, directly encode the graphic in XAML markup. The resource will
+ resize automatically when the scale changes.
+
+
+
+
+ Scaled external assets
+
+
+ If you load images that did not come with your app's package or
+ resource pack (e.g. downloaded from a web server), then you must manually query the
+ RawPixelsPerViewPixel and use that to select an appropriate image. Example:
+
+
+
+
+
+
+
+
+
diff --git a/Samples/DpiScaling/shared/xaml/Scenario2.xaml b/Samples/DpiScaling/shared/xaml/Scenario2.xaml
new file mode 100644
index 00000000..242e6ef5
--- /dev/null
+++ b/Samples/DpiScaling/shared/xaml/Scenario2.xaml
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Overriding scaling
+
+
+
+
+
+
+ To preserve the physical size of UI, Windows automatically scales UI elements.
+ You might not want this behavior, especially if your app
+ doesn't have a high-res version of an element available. This scenario demonstrates how to
+ counteract the automatic scaling of text and UI elements.
+ The box is kept at 100 pixels, and the text is kept at 27 pixels (20pt on an unscaled device).
+ The result is that both elements
+ get physically smaller as the scale increases.
+
+
+ Use the simulator to view this scenario at different scales on the PC.
+ For the 100% scale, use the 10.6" 1366x768 resolution setting. For 140% use 10.6"
+ 1920x1080 and for 180% use 10.6" 2560x1440.
+ Other scales are possible on phones and other devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UI element
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UI element
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/EasProtocol/README.md b/Samples/EasProtocol/README.md
index ff02a800..3fe3600d 100644
--- a/Samples/EasProtocol/README.md
+++ b/Samples/EasProtocol/README.md
@@ -1,4 +1,10 @@
-This sample shows how mail clients can retrieve device information and work with supplied Exchange Active Sync (EAS) policies.
+
+
+# Exchange Active Sync (EAS) sample
+
+This sample shows how mail clients can retrieve device information and work with supplied Exchange Active Sync (EAS) policies.
Windows Store apps can configure their mail clients to stay compliant with the given EAS policies. To bring the local computer compliant, you must request the user's consent before you proceed through the use of a consent UI. Then you can configure the exchange account.
@@ -11,31 +17,29 @@ You can choose one of three scenarios:
- Checking if device policies are compliant with supplied EAS policies
- Applying supplied EAS policies.
-Related Topics
---------------
+## Related Topics
+
[Windows.Security.ExchangeActiveSyncProvisioning](http://msdn.microsoft.com/library/windows/apps/hh701506)
-Operating system requirements
------------------------------
+## Operating system requirements
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
-**Deploying the sample**
+## Deploying the sample
1. Select **Build** \> **Deploy Solution**.
-**Deploying and running the sample**
+## Deploying and running the sample
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select**Debug** \> **Start Without Debugging**.
diff --git a/Samples/EfficientAnimations/README.md b/Samples/EfficientAnimations/README.md
index 892e60af..b1159e4d 100644
--- a/Samples/EfficientAnimations/README.md
+++ b/Samples/EfficientAnimations/README.md
@@ -1,5 +1,8 @@
-Using requestAnimationFrame for power efficient animations sample
-=================================================================
+
+
+# Efficient HTML animations
This sample demonstrates how to use the [requestAnimationFrame](http://msdn.microsoft.com/library/windows/apps/hh920765) method in an HTML5 Canvas to build smooth and power efficient animations in your Windows Store app using JavaScript.
@@ -26,9 +29,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/EnterpriseDataProtection/README.md b/Samples/EnterpriseDataProtection/README.md
index b71c1478..33e9af6f 100644
--- a/Samples/EnterpriseDataProtection/README.md
+++ b/Samples/EnterpriseDataProtection/README.md
@@ -1,36 +1,39 @@
+
+
+# Enterprise data protection sample
+
This sample demonstrates Enterprise Data Protection APIs: File and Buffer protection APIs, clipboard APIs, DPL APIs and networking APIs. All APIs except File and Buffer protection APIs require Enterprise data policy to be set for a specific identity.
If you have EDP policy set for a specific identity, you should expect the IsIdentityManaged API to return true. If the API returns false, all APIs except the File and Buffer APIs will not work as expected. Each API has a detailed scenario description that describes the purpose and behavior of the API.
You need to add a restricted capability called EnterpriseDataPolicy into your application manifest file to mark your app enlightened.
-Related Topics
---------------
+## Related Topics
[Enterprise Data Protection Overview](https://msdn.microsoft.com/en-us/library/Dn985838(v=VS.85).aspx)
-System requirements
--------------------
+## System requirements
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
-**Deploying the sample**
+## Deploying the sample
1. Select **Build** \> **Deploy Solution**.
-**Deploying and running the sample**
+## Deploying and running the sample
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select**Debug** \> **Start Without Debugging**.
diff --git a/Samples/FeedReader/README.md b/Samples/FeedReader/README.md
index a2bb8e71..f0a69a95 100644
--- a/Samples/FeedReader/README.md
+++ b/Samples/FeedReader/README.md
@@ -1,9 +1,15 @@
-Feed reader sample
-==================
+
+
+# RSS reader (JavaScript) end-to-end sample
This Windows Store app sample demonstrates a basic end-to-end implementation of a news feed reader.It uses a [**ListView**](http://msdn.microsoft.com/library/windows/apps/br242878) to organize and display articles from various subscriptions specified in a JSON-formatted data file. The data is obtained over a network connection or from a local cache.
-> **Other end-to-end Windows Store app samples: **[End-to-end sample apps](http://msdn.microsoft.com/library/windows/apps/dn263104).
+## Related samples
+
+- [RSS reader (XAML MVVM) end-to-end sample](https://github.com/Microsoft/Windows-appsample-rssreader)
+- [Other end-to-end sample apps](http://microsoft.github.io/windows/)
Specifically, this sample covers these news reader features and Windows Store app APIs.
@@ -64,8 +70,7 @@ To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.c
To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-Related topics
---------------
+## Related topics
**Samples**
@@ -132,8 +137,7 @@ Related topics
[**SemanticZoom**](http://msdn.microsoft.com/library/windows/apps/br229690)
-Operating system requirements
------------------------------
+## Operating system requirements
**Client:** Windows 10
@@ -141,15 +145,14 @@ Operating system requirements
**Phone:** Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
1. Open the sample's project in Visual Studio 2015.
2. To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/FileAccess/README.md b/Samples/FileAccess/README.md
index 2094bc47..023e9dcf 100644
--- a/Samples/FileAccess/README.md
+++ b/Samples/FileAccess/README.md
@@ -1,6 +1,7 @@
+
# File access sample
This sample shows how to create, read, write, copy and delete a file, how to retrieve file properties, and how to track a file or folder so that your app can access it again. This sample uses [**Windows.Storage**](http://msdn.microsoft.com/library/windows/apps/br227346) and [**Windows.Storage.AccessCache**](http://msdn.microsoft.com/library/windows/apps/br207498) API.
@@ -101,9 +102,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/FilePicker/README.md b/Samples/FilePicker/README.md
index d06fe67a..2479a364 100644
--- a/Samples/FilePicker/README.md
+++ b/Samples/FilePicker/README.md
@@ -44,7 +44,7 @@ To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.c
To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-# Related topics
+## Related topics
## Samples
@@ -70,9 +70,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/FilePickerContracts/README.md b/Samples/FilePickerContracts/README.md
index 4b73fb44..f92cc6b9 100644
--- a/Samples/FilePickerContracts/README.md
+++ b/Samples/FilePickerContracts/README.md
@@ -2,7 +2,7 @@
category: FilesFoldersAndLibraries
--->
-# File picker contracts sample
+# File picker provider sample
This sample shows how an app can provide files, a save location, and real-time file updates to other apps through the file picker by participating in the File Open Picker contract, File Save Picker contract, and Cached File Updater contract, respectively. This sample uses [**Windows.Storage.Pickers.Provider**]9http://msdn.microsoft.com/library/windows/apps/br207954) and [**Windows.Storage.Provider**](http://msdn.microsoft.com/library/windows/apps/hh747812) API.
@@ -49,9 +49,10 @@ To learn more about integrating with file picker contracts, see [**Quickstart:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/FileSearch/README.md b/Samples/FileSearch/README.md
index 3d863a0e..85ad3288 100644
--- a/Samples/FileSearch/README.md
+++ b/Samples/FileSearch/README.md
@@ -2,7 +2,7 @@
category: FilesFoldersAndLibraries
--->
-# Programmatic file search sample
+# File search sample
This sample shows how to query files in a location (like a folder, library, device, or network location). It uses [**Windows.Storage.Search**](http://msdn.microsoft.com/library/windows/apps/br208106) API.
@@ -42,9 +42,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/FileThumbnails/README.md b/Samples/FileThumbnails/README.md
index 86be2625..06fbccf1 100644
--- a/Samples/FileThumbnails/README.md
+++ b/Samples/FileThumbnails/README.md
@@ -1,6 +1,7 @@
+
# File and folder thumbnail sample
This sample shows how to retrieve thumbnails for files and folders. It uses [**Windows.Storage.FileProperties**](http://msdn.microsoft.com/library/windows/apps/br207831).
@@ -37,7 +38,7 @@ To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.c
To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-# Related topics
+## Related topics
## Samples
@@ -63,9 +64,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/FolderEnumeration/README.md b/Samples/FolderEnumeration/README.md
index d8d455dd..b8ff2236 100644
--- a/Samples/FolderEnumeration/README.md
+++ b/Samples/FolderEnumeration/README.md
@@ -68,9 +68,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/FullScreenMode/README.md b/Samples/FullScreenMode/README.md
index c71a08eb..6099b273 100644
--- a/Samples/FullScreenMode/README.md
+++ b/Samples/FullScreenMode/README.md
@@ -1,6 +1,7 @@
+
# Full screen mode sample
This sample shows how to use full screen mode so that your app can fill the entire screen.
@@ -39,9 +40,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Geolocation/README.md b/Samples/Geolocation/README.md
index d6d6d460..a6d6ba98 100644
--- a/Samples/Geolocation/README.md
+++ b/Samples/Geolocation/README.md
@@ -1,4 +1,9 @@
+
+
# Geolocation sample
+
The Geolocation sample shows how to use the Windows.Devices.Geolocation namespace to get the geographic location of the user's device. An app can use the Geolocation namespace to request access to user location, get the location one time, continuously track the location by getting location update events, or get alerts when the device has entered or exited locations of interest.
### This sample also shows how to:
@@ -44,9 +49,10 @@ This sample requires that location capability be set in the *Package.appxmanifes
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Geotag/README.md b/Samples/Geotag/README.md
index 2c2d1e59..6fbdd9e0 100644
--- a/Samples/Geotag/README.md
+++ b/Samples/Geotag/README.md
@@ -1,7 +1,9 @@
-
+# Geotag sample
+
This sample demonstrates Windows.Storage.FileProperties.GeotagHelper API usage
Specifically, this sample covers:
@@ -25,9 +27,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/Gyrometer/README.md b/Samples/Gyrometer/README.md
index 12c2ff57..374a3b43 100644
--- a/Samples/Gyrometer/README.md
+++ b/Samples/Gyrometer/README.md
@@ -38,9 +38,10 @@ When you click the **Get Sample** button, two sets of readings are displayed: ra
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/HomeGroup/README.md b/Samples/HomeGroup/README.md
index e26eb332..8bb8ba81 100644
--- a/Samples/HomeGroup/README.md
+++ b/Samples/HomeGroup/README.md
@@ -1,7 +1,8 @@
-# HomeGroup app sample
+
+# HomeGroup sample
This sample demonstrates how to use a HomeGroup to open, search, and share files. This sample uses some of the HomeGroup options found in the [**Windows.Storage.Pickers**](http://msdn.microsoft.com/library/windows/apps/br207928) and [**Windows.Storage.KnownFolders**](http://msdn.microsoft.com/library/windows/apps/br227151). In particular, it uses [**Windows.Storage.Pickers.PickerLocationId**](http://msdn.microsoft.com/library/windows/apps/br207890) enumeration and the [**Windows.Storage.KnownFolders.homeGroup**](http://msdn.microsoft.com/library/windows/apps/br227153) property to select files contained in a HomeGroup.
@@ -46,9 +47,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/HtmlFormValidation/README.md b/Samples/HtmlFormValidation/README.md
index e3bec86e..c322ca36 100644
--- a/Samples/HtmlFormValidation/README.md
+++ b/Samples/HtmlFormValidation/README.md
@@ -1,24 +1,25 @@
-HTML5 form validation sample
-============================
+
+
+# HTML5 form validation sample
Demonstrates HTML5 input form and validation attributes that enable you to help your users enter the correct data in the right format into your page's forms.
-Operating system requirements
------------------------------
+## Operating system requirements
Client
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/HttpClient/README.md b/Samples/HttpClient/README.md
index 968ee185..83b79856 100644
--- a/Samples/HttpClient/README.md
+++ b/Samples/HttpClient/README.md
@@ -1,6 +1,7 @@
+
# HttpClient sample
This sample shows you how to upload and download various types of content with an HTTP server using the [**HttpClient**](http://msdn.microsoft.com/library/windows/apps/dn298639) and related classes in [**Windows.Web.Http**](http://msdn.microsoft.com/library/windows/apps/dn279692) namespace.
@@ -115,10 +116,10 @@ For more information on network capabilities, see [How to set network capabiliti
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Inclinometer/README.md b/Samples/Inclinometer/README.md
index 8322f839..4b12c317 100644
--- a/Samples/Inclinometer/README.md
+++ b/Samples/Inclinometer/README.md
@@ -39,9 +39,10 @@ Related topics
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/IndexedDB/README.md b/Samples/IndexedDB/README.md
index 53492a50..51117eca 100644
--- a/Samples/IndexedDB/README.md
+++ b/Samples/IndexedDB/README.md
@@ -1,27 +1,27 @@
-IndexedDB sample
-================
+
+
+# IndexedDB sample
This sample demonstrates a common usage pattern for the IndexedDB web standard API. This includes creation of a database, loading a schema from an XML file and applying that schema to the database, and reading from and writing to the database. This sample is illustrated through a simple book lending library scenario.
-Related topics
---------------
+## Related topics
-Operating system requirements
------------------------------
+## Operating system requirements
Client
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/Ink/README.md b/Samples/Ink/README.md
index d1376053..0fb4aa11 100644
--- a/Samples/Ink/README.md
+++ b/Samples/Ink/README.md
@@ -1,8 +1,8 @@
-Ink sample
-=================
+
+# Inking sample
This sample demonstrates how to use ink functionality (such as, capturing, manipulating, and interpreting ink strokes) in Universal Windows apps using JavaScript.
@@ -40,8 +40,7 @@ To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.c
To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-Related topics
---------------
+## Related topics
[Getting started with apps](https://dev.windows.com/getstarted)
@@ -59,8 +58,7 @@ Related topics
[**Windows.UI.Input.Inking**](http://msdn.microsoft.com/library/windows/apps/br208524)
-Operating system requirements
------------------------------
+## Operating system requirements
**Client:** Windows 10
@@ -68,14 +66,13 @@ Operating system requirements
**Phone:** Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory containing the sample. Double-click the Microsoft Visual Studio Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
\ No newline at end of file
diff --git a/Samples/JapanesePhoneticAnalysis/README.md b/Samples/JapanesePhoneticAnalysis/README.md
index c494e34d..a9d6e1c4 100644
--- a/Samples/JapanesePhoneticAnalysis/README.md
+++ b/Samples/JapanesePhoneticAnalysis/README.md
@@ -2,7 +2,7 @@
category: GlobalizationAndLocalization
-->
-# Japanese phonetic analysis globalization sample
+# Japanese phonetic analysis sample
This sample demonstrates how to analyze Japanese texts and retrieves words or segments in the text by using the [**JapanesePhoneticAnalyzer**](http://msdn.microsoft.com/library/windows/apps/dn434076) class.
@@ -39,9 +39,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Json/README.md b/Samples/Json/README.md
index 636f2587..b640e4cc 100644
--- a/Samples/Json/README.md
+++ b/Samples/Json/README.md
@@ -1,7 +1,8 @@
-# Json Sample
+
+# JSON sample
This sample shows you how to encode and decode JavaScript Object Notation (JSON) objects, arrays, strings, numbers and booleans using classes in the [**Windows.Data.Json**](http://msdn.microsoft.com/library/windows/apps/br240639) namespace. This namespace is intended for C\# and C++ programming languages. JavaScript developers should use the [JSON.Parse](http://go.microsoft.com/fwlink/p/?linkid=398621) method to parse JSON. For more information, see the [JSON Object (JavaScript)](http://go.microsoft.com/fwlink/p/?linkid=398620), an intrinsic object that provides functions to convert JavaScript values to and from the JSON format.
@@ -57,10 +58,10 @@ The following features can be used to retrieve text that contains JSON from an H
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/KeyCredentialManager/README.md b/Samples/KeyCredentialManager/README.md
index 702d86ba..6ce93f52 100644
--- a/Samples/KeyCredentialManager/README.md
+++ b/Samples/KeyCredentialManager/README.md
@@ -1,4 +1,10 @@
-This sample demonstrates use of the Windows.Security.Authentication.Credentials.KeyCredentialManager API for utlizing Windows Passport as a user authentication method.
+
+
+# KeyCredentialManager sample
+
+This sample demonstrates use of the Windows.Security.Authentication.Credentials.KeyCredentialManager API for utlizing Windows Passport as a user authentication method.
The currently existing system of using passwords as authentication is prevalent and as such this sample stands as an example of how Windows Passport can easily be upsold to and integrated into existing authentication applications.
@@ -22,9 +28,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/LampDevice/README.md b/Samples/LampDevice/README.md
index e4adb988..c955e1fd 100644
--- a/Samples/LampDevice/README.md
+++ b/Samples/LampDevice/README.md
@@ -2,8 +2,7 @@
category: DevicesSensorsAndPower
--->
-LampDevice Sample
------------------
+# Lamp device sample
This sample demonstrates Windows.Devices.Lights.Lamp API usage. The Windows.Devices.Lights.Lamp API enables applications to use the camera flash
independently of the capture device. The Windows.Devices.Lights.Lamp API allows for more control over the flash device and consumes less power and CPU
@@ -47,9 +46,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/LanguageFont/README.md b/Samples/LanguageFont/README.md
index 618deb85..0caf9c68 100644
--- a/Samples/LanguageFont/README.md
+++ b/Samples/LanguageFont/README.md
@@ -31,9 +31,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/LibraryManagement/README.md b/Samples/LibraryManagement/README.md
index 5fb548a7..4063c5d9 100644
--- a/Samples/LibraryManagement/README.md
+++ b/Samples/LibraryManagement/README.md
@@ -42,9 +42,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/LightSensor/README.md b/Samples/LightSensor/README.md
index 706e1227..b5152d52 100644
--- a/Samples/LightSensor/README.md
+++ b/Samples/LightSensor/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Light Sensor sample
+# Light sensor sample
This sample shows how to use the [**Windows.Devices.Sensors.LightSensor**](http://msdn.microsoft.com/library/windows/apps/br225790) API.
@@ -33,9 +33,10 @@ When you click the **Enable** button for the **Polling** option, the app will re
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/LinguisticServices/README.md b/Samples/LinguisticServices/README.md
index be8d9477..ff9b2ad4 100644
--- a/Samples/LinguisticServices/README.md
+++ b/Samples/LinguisticServices/README.md
@@ -1,4 +1,8 @@
-# Linguistic Services sample
+
+
+# Linguistic services sample
This sample demonstrates the use of [Extended Linguistic Services (ELS)](http://msdn.microsoft.com/library/windows/apps/dd317839) in a Windows Store app.
@@ -32,9 +36,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/LiveDash/README.md b/Samples/LiveDash/README.md
index 490756b5..3f287fb1 100644
--- a/Samples/LiveDash/README.md
+++ b/Samples/LiveDash/README.md
@@ -2,7 +2,7 @@
category: AudioVideoAndCamera
--->
-# Live DASH Sample
+# DASH streaming sample
How to create and use the MSEStreamSource API to playback Live DASH content.
@@ -33,9 +33,10 @@ Windows 8.1 or greater
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/LockScreenApps/README.md b/Samples/LockScreenApps/README.md
index 65da6bd5..639ac6ca 100644
--- a/Samples/LockScreenApps/README.md
+++ b/Samples/LockScreenApps/README.md
@@ -1,4 +1,4 @@
-
@@ -47,9 +47,10 @@ To obtain an insider copy of Windows 10, go to [Windows 10](http://insider.windo
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Logging/README.md b/Samples/Logging/README.md
index db608cdc..367a15f0 100644
--- a/Samples/Logging/README.md
+++ b/Samples/Logging/README.md
@@ -1,3 +1,7 @@
+
+
# Logging sample
This sample shows how to use the Logging APIs in the
@@ -65,9 +69,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/LowLatencyInput/README.md b/Samples/LowLatencyInput/README.md
index b1a5981a..e15efe35 100644
--- a/Samples/LowLatencyInput/README.md
+++ b/Samples/LowLatencyInput/README.md
@@ -2,7 +2,7 @@
category: CustomUserInteractions
---!>
-# Low Latency Input Sample
+# Low latency input sample
This sample shows how to handle input on a dedicated input thread to achieve lowest input latency.
@@ -41,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/MIDI/README.md b/Samples/MIDI/README.md
index a5578db9..54be8816 100644
--- a/Samples/MIDI/README.md
+++ b/Samples/MIDI/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-MIDI Windows Runtime sample
-===========================
+# MIDI sample
This sample demonstrates how to use the Windows.Devices.Midi API in a Windows Runtime app.
@@ -15,25 +14,26 @@ This sample demonstrates the following features:
- Open MIDI Out ports.
- Create MIDI messages and send them to a MIDI Out ports.
-Related topics
---------------
+## Related topics
+
AudioGraph, Video editing
-Operating system requirements
------------------------------
+## Operating system requirements
+
Client: Windows 10
Server: Windows Server 2012 R2
-Build the sample
-----------------
-1. Start Visual Studio for Windows --\> and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio for Windows Solution (.sln) file.
-3. Press F6 or use **Build** \> **Build Solution** to build the sample.
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
-Run the sample
---------------
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
-Known Issues
---------------
+## Known Issues
+
There is currently a problem with deploying the Microsoft.Midi.GmDls framework package within the SDK. Because of this, the GS Synth is not currently usable. The code required for the reference framework is in MIDI.csproj, but has been commented out until the issue with deploying the framework package is resolved.
\ No newline at end of file
diff --git a/Samples/MagneticStripeReader/README.md b/Samples/MagneticStripeReader/README.md
index 7778fb4a..f1a97020 100644
--- a/Samples/MagneticStripeReader/README.md
+++ b/Samples/MagneticStripeReader/README.md
@@ -1,7 +1,8 @@
-# Magnetic Stripe Reader Sample
+
+# Magnetic stripe reader sample
This sample shows how to create a magnetic stripe reader, claim it for exclusive use, enable it to receive data, and read data from a bank card or a motor vehicle card. This sample uses [**Windows.Devices.PointOfService**](http://msdn.microsoft.com/library/windows/apps/dn298071) API.
@@ -63,9 +64,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/MapControl/README.md b/Samples/MapControl/README.md
index 85b91f4a..e4c53f1e 100644
--- a/Samples/MapControl/README.md
+++ b/Samples/MapControl/README.md
@@ -1,9 +1,8 @@
-
-Windows map sample for the Universal Windows platform (C#)
-===============================
+# MapControl sample
This sample demonstrates how to use the universal map control ([MapControl]( https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.xaml.controls.maps.mapcontrol.aspx)) in a UWP app.
@@ -16,8 +15,7 @@ This sample demonstrates how to use the universal map control ([MapControl]( htt
This sample is written in XAML and C#.
-For more info
---------------
+## For more info
[How to display maps in the Map control](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn642089.aspx)
@@ -27,21 +25,17 @@ For more info
[URI scheme for Windows Maps app]( https://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj635237.aspx)
-Operating system requirements
------------------------------
+## Operating system requirements
Client: Windows 10 Insider Preview
+## Build the sample
-Build the sample
-----------------
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-1. Start Visual Studio 2015 and select **File \> Open \> Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Microsoft Visual Studio Solution (.sln) file.
-3. Press F7 or use **Build \> Build Solution** to build the sample.
-
-
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/MediaEditing/README.md b/Samples/MediaEditing/README.md
index 96042696..05986018 100644
--- a/Samples/MediaEditing/README.md
+++ b/Samples/MediaEditing/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-Media Editing Sample
------------
+# Media editing sample
This sample shows how to use the APIs in the **Windows.Media.Editing** namespace to edit and compose media clips. The tasks
demonstrated in these scenarios include opening, trimming, and saving videos, appending multiple video clips together into a
@@ -87,9 +86,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/MediaImport/README.md b/Samples/MediaImport/README.md
index 0362f4fd..799c1356 100644
--- a/Samples/MediaImport/README.md
+++ b/Samples/MediaImport/README.md
@@ -1,4 +1,8 @@
-# Windows Media Import Sample
+
+
+# Windows media import sample
This sample shows how to query files in a location (like a folder, library, device, or network location). It uses [**Windows.Media.Import**]
@@ -28,9 +32,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/MediaTranscoding/README.md b/Samples/MediaTranscoding/README.md
index 3cd68ca0..ea3bed29 100644
--- a/Samples/MediaTranscoding/README.md
+++ b/Samples/MediaTranscoding/README.md
@@ -2,8 +2,7 @@
category: AudioVideoAndCamera
--->
-Transcoding media sample
-========================
+# Transcoding media sample
This sample demonstrates how to use the [**Windows.Media.Transcoding**](http://msdn.microsoft.com/library/windows/apps/br207105) API to transcode a video file in a Windows Store app.. Transcoding is the conversion of a digital media file, such as a video or audio file, from one format to another. For example, you might convert a Windows Media file to MP4 so that it can be played on a portable device that supports MP4 format. Or, you might convert a high-definition video file to a lower resolution. In that case, the re-encoded file might use the same codec as the original file, but it would have a different encoding profile.
@@ -26,9 +25,7 @@ Some of the transcode API covered in this sample are:
For more info about transcoding video files in Windows Store apps, see [Quickstart: transcoding](http://msdn.microsoft.com/library/windows/apps/hh452795) and [How to trim a video file](http://msdn.microsoft.com/library/windows/apps/hh452776).
-
-Related topics
---------------
+## Related topics
[Windows 8 app samples](http://go.microsoft.com/fwlink/p/?LinkID=227694)
@@ -68,23 +65,20 @@ Related topics
[**TrimStop**](http://msdn.microsoft.com/library/windows/apps/br207104)
-
-System requirements
------------------------------
+## System requirements
Client:
Windows 10
Windows Phone 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C\#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
diff --git a/Samples/MessageDialog/README.md b/Samples/MessageDialog/README.md
index 681c894b..82207ee3 100644
--- a/Samples/MessageDialog/README.md
+++ b/Samples/MessageDialog/README.md
@@ -28,9 +28,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/MobileBroadband/README.md b/Samples/MobileBroadband/README.md
index b7cdfb2b..487796d4 100644
--- a/Samples/MobileBroadband/README.md
+++ b/Samples/MobileBroadband/README.md
@@ -1,4 +1,8 @@
-# Mobilebroadband Sample
+
+
+# Mobile broadband sample
This sample shows how to use the Mobile Broadband Networking API (Windows.Networking.NetworkOperators) using following scenarios:
- Displays device information by account
@@ -31,8 +35,10 @@ Hence requires restricted capability to be defined in package manifest.
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/MsBlobBuilder/README.md b/Samples/MsBlobBuilder/README.md
index 64a5abb9..4e3682d2 100644
--- a/Samples/MsBlobBuilder/README.md
+++ b/Samples/MsBlobBuilder/README.md
@@ -1,5 +1,8 @@
-Using a Blob to save and load content sample
-============================================
+
+
+# Blobs sample
This sample shows how to use a [**Blob**](http://msdn.microsoft.com/library/windows/apps/hh453178) and the [**Window.Storage.Pickers.FileOpenPicker**](http://msdn.microsoft.com/library/windows/apps/br207847) to load and display images and video. It also shows how to create single- and multi-use **Blob** objects, how to save a [**canvas**](http://msdn.microsoft.com/library/windows/apps/hh465734) to a **Blob** and then load it as an image, how to download content through XHR and save it locally, how to use [MSBlobBuilder](http://msdn.microsoft.com/library/windows/apps/hh779016) to create a **Blob**, post a **Blob** to the web, and how to retrieve a thumbnail and use a **Blob** to display it in an image tag.
@@ -25,9 +28,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/MultipleViews/README.md b/Samples/MultipleViews/README.md
index 26c021f0..316d2389 100644
--- a/Samples/MultipleViews/README.md
+++ b/Samples/MultipleViews/README.md
@@ -2,8 +2,7 @@
category: ControlsLayoutAndText
--->
-
-# Multiple Views Sample
+# Multiple views sample
This sample demonstrates showing multiple windows for a single app.
@@ -37,9 +36,10 @@ To obtain an insider copy of Windows 10, go to [Windows 10](http://insider.windo
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Nfc/README.md b/Samples/Nfc/README.md
index b9ce3aa4..e7adc217 100644
--- a/Samples/Nfc/README.md
+++ b/Samples/Nfc/README.md
@@ -1,4 +1,8 @@
-# Near Field Communication (NFC) Sample
+
+
+# Near field communication (NFC) sample
This sample shows how to:
@@ -29,8 +33,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/NfcProvisioner/README.md b/Samples/NfcProvisioner/README.md
index 8ef00900..0e5c137d 100644
--- a/Samples/NfcProvisioner/README.md
+++ b/Samples/NfcProvisioner/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# NFC Enterprise Provisioner Universal Sample
+# NFC enterprise provisioner sample
This sample shows how to create the enterprise provision helper in the universal app to provision device via the Proximity API.
@@ -23,9 +23,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Notifications/README.md b/Samples/Notifications/README.md
index 668d96fb..7e781eef 100644
--- a/Samples/Notifications/README.md
+++ b/Samples/Notifications/README.md
@@ -1,9 +1,8 @@
-Notifications Sample
-=========================
+# Notifications sample
This sample demonstrates the use of the various Toast and LiveTile related API, such as Windows.UI including Notifications, Popups, and StartScreen namespaces.
@@ -13,7 +12,6 @@ There are many scenarios in this sample broken down to three major sections:
- LiveTile
- Toast
-
### Badge
**Badges** are optional numbers of glyphs that are applied to **LiveTiles**. They enable the app to communicate whether the user has certain amount of notifications, or their attention is needed due to an event. They can also convey user status in a chat application.
@@ -112,9 +110,10 @@ There are two kinds of **LiveTiles**, Primary and Secondary tiles. Primary tiles
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/NumberFormatting/README.md b/Samples/NumberFormatting/README.md
index 49830e08..ba68464c 100644
--- a/Samples/NumberFormatting/README.md
+++ b/Samples/NumberFormatting/README.md
@@ -50,9 +50,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/OCR/README.md b/Samples/OCR/README.md
index ceb0b4da..700442fc 100644
--- a/Samples/OCR/README.md
+++ b/Samples/OCR/README.md
@@ -1,5 +1,8 @@
-OCR Sample
---------------------
+
+
+# OCR sample
This sample demonstrates how to use Windows.Media.Ocr API. Optical character recognition (OCR) API allows for application developer to extract text in the specific language from an image.
@@ -47,9 +50,10 @@ Scenario 2: Capture image from camera and extract text.
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/OrientationSensor/README.md b/Samples/OrientationSensor/README.md
index 068a8e0e..07725522 100644
--- a/Samples/OrientationSensor/README.md
+++ b/Samples/OrientationSensor/README.md
@@ -1,8 +1,8 @@
-
-# Orientation Sensor sample
+# Orientation sensor sample
This sample shows how to use the [**Windows.Devices.Sensors.OrientationSensor**](http://msdn.microsoft.com/library/windows/apps/br206371) API.
@@ -53,9 +53,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/Package/README.md b/Samples/Package/README.md
index bfd41069..153f3c4c 100644
--- a/Samples/Package/README.md
+++ b/Samples/Package/README.md
@@ -71,9 +71,10 @@ For more info about the concepts and APIs demonstrated in this sample, see these
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/PackagedContent/README.md b/Samples/PackagedContent/README.md
index 806b6573..b3a7a9c8 100644
--- a/Samples/PackagedContent/README.md
+++ b/Samples/PackagedContent/README.md
@@ -1,5 +1,8 @@
-XHR, handling navigation errors, and URL schemes sample
-=======================================================
+
+
+# XHR, handling navigation errors, and URL schemes sample
This sample demonstrates how to handle navigation errors, how to use the right URL scheme to reference packaged content, and how to use [**XMLHttpRequest**](http://msdn.microsoft.com/library/windows/apps/hh453379) (XHR) to retrieve remote and local content.
@@ -36,9 +39,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/PasswordVault/README.md b/Samples/PasswordVault/README.md
index 74497a1a..4a517563 100644
--- a/Samples/PasswordVault/README.md
+++ b/Samples/PasswordVault/README.md
@@ -1,4 +1,10 @@
-The Credential Locker provides a way for you to store user credentials (username, password) in a secure fashion for your app. Usernames and passwords stored using the credential locker are encrypted and saved locally. Once you have the credentials stored, then you can automatically sign users in for a more convenient user experience. Additionally, user credentials stored in the Credential Locker roam with the user's Microsoft Account for added convenience. For more information, see Storing user credentials.
+
+
+# Credential locker sample
+
+The Credential Locker provides a way for you to store user credentials (username, password) in a secure fashion for your app. Usernames and passwords stored using the credential locker are encrypted and saved locally. Once you have the credentials stored, then you can automatically sign users in for a more convenient user experience. Additionally, user credentials stored in the Credential Locker roam with the user's Microsoft Account for added convenience. For more information, see Storing user credentials.
This sample demonstrates how to use the Credential Locker and typical login sequences to store web credentials. Specific scenarios include a single user with a single resource, multiple users with a single resource, multiple users with multiple resources, and deleting stored credentials.
@@ -22,9 +28,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/Pedometer/README.md b/Samples/Pedometer/README.md
index ba491341..cdc1519d 100644
--- a/Samples/Pedometer/README.md
+++ b/Samples/Pedometer/README.md
@@ -36,9 +36,10 @@ When you click the 'Get steps count' button, it displays the last known step cou
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Personalization/README.md b/Samples/Personalization/README.md
index 81e155f2..fec55b80 100644
--- a/Samples/Personalization/README.md
+++ b/Samples/Personalization/README.md
@@ -30,9 +30,10 @@ To learn more about the lock screen, see [Lock screen overview](http://msdn.micr
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/PhoneCall/README.md b/Samples/PhoneCall/README.md
index 5d28f704..5db1f277 100644
--- a/Samples/PhoneCall/README.md
+++ b/Samples/PhoneCall/README.md
@@ -1,6 +1,7 @@
+
# Phone call sample
This sample shows how to use the [**Calls**](https://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.calls.aspx) APIs. This sample does not follow the typical sample template pattern, it is a sample app that uses the MWC pattern to give you a working E2E phone call application to start with.
@@ -40,9 +41,10 @@ This focuses on accessing voice mail information and placing calls to the user's
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the C\# language. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/PosPrinter/README.md b/Samples/PosPrinter/README.md
index a5d15817..76be6b23 100644
--- a/Samples/PosPrinter/README.md
+++ b/Samples/PosPrinter/README.md
@@ -1,7 +1,8 @@
-# POS Printer Sample
+
+# POS printer sample
This sample demonstrates the use of the [**Windows.Devices.PointOfService.PosPrinter**](http://msdn.microsoft.com/library/windows/apps/dn298071) API.
@@ -47,9 +48,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Printing/README.md b/Samples/Printing/README.md
index feab089c..fcfe3df5 100644
--- a/Samples/Printing/README.md
+++ b/Samples/Printing/README.md
@@ -1,5 +1,8 @@
-Printing sample
-===============
+
+
+# Printing sample
This sample demonstrates how apps can add support for printing on Windows.
@@ -27,9 +30,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File \> Open \> Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Microsoft Visual Studio Solution (.sln) file.
-3. Press F7 or use **Build \> Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/Projection/README.md b/Samples/Projection/README.md
index bdf85c5f..ea2f30ec 100644
--- a/Samples/Projection/README.md
+++ b/Samples/Projection/README.md
@@ -29,9 +29,10 @@ The sample demonstrates:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ProximitySensor/README.md b/Samples/ProximitySensor/README.md
index 97a1a163..32c435c4 100644
--- a/Samples/ProximitySensor/README.md
+++ b/Samples/ProximitySensor/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Proximity Sensor sample
+# Proximity sensor sample
This sample demonstrates the use of the Windows.Devices.Sensors.ProximitySensor API.
@@ -34,9 +34,10 @@ When you choose the Enable button for the **Display On/Off** option, the app wil
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ProxyStubsForWinRTComponents/README.md b/Samples/ProxyStubsForWinRTComponents/README.md
index 1fc45fa6..f8ee03c8 100644
--- a/Samples/ProxyStubsForWinRTComponents/README.md
+++ b/Samples/ProxyStubsForWinRTComponents/README.md
@@ -2,7 +2,7 @@
category: PlatformArchitecture
--->
-# Windows Runtime in-process component authoring with proxy\stub generation sample for C++ and C#
+# In-process component authoring sample
Create proxies and stubs for a Windows Runtime in-process component that is consumed in C++, JS, and C#.
@@ -22,9 +22,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/RadioManager/README.md b/Samples/RadioManager/README.md
index 47247e90..b781485a 100644
--- a/Samples/RadioManager/README.md
+++ b/Samples/RadioManager/README.md
@@ -1,7 +1,9 @@
-# RadioManager Sample
+
+# Radios sample
+
This sample demonstrates:
- Enumerating Radios on the device
@@ -18,10 +20,10 @@ This sample demonstrates:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/RelativeInclinometer/README.md b/Samples/RelativeInclinometer/README.md
index 478adcf0..e8faa382 100644
--- a/Samples/RelativeInclinometer/README.md
+++ b/Samples/RelativeInclinometer/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Relative Inclinometer sample
+# Relative inclinometer sample
This sample demonstrates use of the Windows.Devices.Sensors.Inclinometer API for the Relative Inclinometer sensor.
@@ -29,9 +29,10 @@ When you choose the Enable button for the **Polling** option, the app will retri
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/RelativeOrientationSensor/README.md b/Samples/RelativeOrientationSensor/README.md
index 170cc009..8c665dbe 100644
--- a/Samples/RelativeOrientationSensor/README.md
+++ b/Samples/RelativeOrientationSensor/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Relative Orientation Sensor sample
+# Relative orientation sensor sample
This sample demonstrates use of the Windows.Devices.Sensors.Orientation API for the Relative Orientation sensor.
@@ -29,9 +29,10 @@ When you choose the Enable button for the **Polling** option, the app will retri
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ResizeAppView/README.md b/Samples/ResizeAppView/README.md
index a12bc0c3..c4b22e56 100644
--- a/Samples/ResizeAppView/README.md
+++ b/Samples/ResizeAppView/README.md
@@ -1,7 +1,8 @@
-# Resize app view sample
+
+# Window resizing sample
This sample shows how to customize the size of your app's view.
@@ -40,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SecondaryTiles/README.md b/Samples/SecondaryTiles/README.md
index ad9d5869..aa02a597 100644
--- a/Samples/SecondaryTiles/README.md
+++ b/Samples/SecondaryTiles/README.md
@@ -2,7 +2,7 @@
category: TilesToastAndNotifications
--->
-# Secondary Tiles Sample
+# Secondary tiles sample
This sample shows how to pin and use a secondary tile, which is a tile that directly accesses a specific, non-default section or experience within an app, such as a saved game or a specific friend in a social networking app. Sections or experiences within an app that can be pinned to the Start screen as a secondary tile are chosen and exposed by the app, but the creation of the secondary tile is strictly up to the user.
@@ -45,9 +45,10 @@ To obtain an insider copy of Windows 10, go to [Windows 10](http://insider.windo
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SemanticTextQuery/README.md b/Samples/SemanticTextQuery/README.md
index 6afb68b6..d8582a6c 100644
--- a/Samples/SemanticTextQuery/README.md
+++ b/Samples/SemanticTextQuery/README.md
@@ -2,8 +2,7 @@
category: FilesFoldersAndLibraries
--->
-# Semantic Text Query sample
-==========================
+# Semantic text query sample
This sample shows the use of the different [**SemanticTextQuery**](http://msdn.microsoft.com/library/windows/apps/dn263476) APIs to find the corresponding hits when querying strings or file properties.
@@ -29,9 +28,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SerialArduino/README.md b/Samples/SerialArduino/README.md
index ebe801c9..a4de6c57 100644
--- a/Samples/SerialArduino/README.md
+++ b/Samples/SerialArduino/README.md
@@ -2,8 +2,7 @@
category: DevicesSensorsAndPower
--->
-Serial Arduino Sample
-=====================
+# Serial Arduino sample
This sample demonstrates the use of the Windows.Devices.SerialCommunication WinRT APIs to communicate with an Arduino device.
@@ -20,15 +19,13 @@ When the application starts, a list of available matching Arduino devices is dis
This scenario demonstrates the use of Input and Output streams on the SerialDevice object in order to communicate with the Serial device specifically to toggle the four LEDs and get temperature readings from the temperature sensor.
-Hardware requirements
----------------------
+## Hardware requirements
Any Arduino board with a header that can be used to wire up the simple circuit of LEDs and the temperature sensor. The Arduino uses a custom sketch that goes along with the sample and is included in the sketch folder as SerialCommand.ino.
The wiring diagram is also provided as SerialCommand.fzz can be opened with Fritzing application. (Download at http://Fritzing.org)
-Operating system requirements
------------------------------
+## Operating system requirements
**Client:** Windows 10
@@ -36,19 +33,19 @@ Operating system requirements
**Phone:** Windows 10
-Build and Deploy the sketch
----------------------------
+## Build and Deploy the sketch
1. Install the Arduino IDE.
2. Open the SerialCommand.ino sketch.
3. Compile and deploy the sketch to the Arduino device.
-Build the sample
-----------------
+## Build the sample
-To build this sample, open the solution (.sln) file from Visual Studio. Press Ctrl+Shift+B, or select Build \> Build Solution.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To run this sample after building it, press F5 (run with debugging enabled) or Ctrl+F5 (run without debugging enabled) from Visual Studio. (Or select the corresponding options from the Debug menu.)
diff --git a/Samples/ShareSource/README.md b/Samples/ShareSource/README.md
index bd25890e..8b40ad65 100644
--- a/Samples/ShareSource/README.md
+++ b/Samples/ShareSource/README.md
@@ -60,9 +60,10 @@ For more info about the concepts and APIs demonstrated in this sample, see these
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/ShareTarget/README.md b/Samples/ShareTarget/README.md
index 51b577e0..9dd6c2d5 100644
--- a/Samples/ShareTarget/README.md
+++ b/Samples/ShareTarget/README.md
@@ -58,9 +58,10 @@ To obtain an insider copy of Windows 10, go to [Windows 10](http://insider.windo
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Simple3DGameDX/README.md b/Samples/Simple3DGameDX/README.md
index a272f852..e32e1145 100644
--- a/Samples/Simple3DGameDX/README.md
+++ b/Samples/Simple3DGameDX/README.md
@@ -2,7 +2,7 @@
category: Gaming
--->
-# DirectX 3D first person shooter game sample
+# Direct3D game sample
This sample demonstrates the basic end-to-end implementation of a simple first person 3-D game using DirectX (Direct3D 11.2, Direct2D, Windows.Gaming.Input, and XAudio2) in a C++ app.
@@ -54,9 +54,10 @@ These topics provide info about the APIs used in this sample:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Simple3DGameXaml/README.md b/Samples/Simple3DGameXaml/README.md
index 5061d67e..606659c0 100644
--- a/Samples/Simple3DGameXaml/README.md
+++ b/Samples/Simple3DGameXaml/README.md
@@ -2,7 +2,7 @@
category: Gaming
--->
-# DirectX and XAML 3D first person shooter game sample
+# DirectX and XAML game sample
This sample demonstrates the basic end-to-end implementation of a simple first person 3-D game using DirectX (Direct3D 11.2, Direct2D, Windows.Gaming.Input, and XAudio2) and XAML in a C++ app. XAML is used for the heads-up display and game state messages.
@@ -58,9 +58,10 @@ These topics provide info about the APIs used in this sample:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SimpleCommunication/README.md b/Samples/SimpleCommunication/README.md
index b83ad097..89462966 100644
--- a/Samples/SimpleCommunication/README.md
+++ b/Samples/SimpleCommunication/README.md
@@ -1,5 +1,8 @@
-Real-time communication sample
-==============================
+
+
+# Real-time communication sample
This sample demonstrates how to use the low latency feature to enable real-time communication applications.
@@ -65,32 +68,19 @@ Related topics
Operating system requirements
-----------------------------
-Client
+**Client:** Windows 10
-Windows 8.1
+**Server:** Windows Server 2016 Technical Preview
-Server
-
-Windows Server 2012 R2
-
-Phone
-
-Windows Phone 8.1
+**Phone:** Windows 10
Build the sample
----------------
-1. Start Microsoft Visual Studio 2013 Update 2 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory named for the sample and double-click the Visual Studio 2013 Update 2 Solution (.sln) file.
-3. Follow the steps for the version of the sample you want:
- - To build the Windows version of the sample:
-
- 1. Select **SimpleCommunication.Windows** in **Solution Explorer**.
- 2. Press Ctrl+Shift+B, or use **Build** \> **Build Solution**, or use **Build** \> **Build SimpleCommunication.Windows**.
- - To build the Windows Phone version of the sample:
-
- 1. Select **SimpleCommunication.WindowsPhone** in **Solution Explorer**.
- 2. Press Ctrl+Shift+B or use **Build** \> **Build Solution** or use **Build** \> **Build SimpleCommunication.WindowsPhone**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
@@ -99,23 +89,8 @@ The next steps depend on whether you just want to deploy the sample or you want
**Deploying the sample**
-- To deploy the built Windows version of the sample:
-
- 1. Select **SimpleCommunication.Windows** in **Solution Explorer**.
- 2. Use **Build** \> **Deploy Solution** or **Build** \> **Deploy SimpleCommunication.Windows**.
-- To deploy the built Windows Phone version of the sample:
-
- 1. Select **SimpleCommunication.WindowsPhone** in **Solution Explorer**.
- 2. Use **Build** \> **Deploy Solution** or **Build** \> **Deploy SimpleCommunication.WindowsPhone**.
+- Select Build > Deploy Solution.
**Deploying and running the sample**
-- To deploy and run the Windows version of the sample:
-
- 1. Right-click **SimpleCommunication.Windows** in **Solution Explorer** and select **Set as StartUp Project**.
- 2. To debug the sample and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
-- To deploy and run the Windows Phone version of the sample:
-
- 1. Right-click **SimpleCommunication.WindowsPhone** in **Solution Explorer** and select **Set as StartUp Project**.
- 2. To debug the sample and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
-
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.
diff --git a/Samples/SimpleImaging/README.md b/Samples/SimpleImaging/README.md
index 17d1d472..079bcf50 100644
--- a/Samples/SimpleImaging/README.md
+++ b/Samples/SimpleImaging/README.md
@@ -54,9 +54,10 @@ All other files provide common SDK sample functionality.
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SimpleInk/README.md b/Samples/SimpleInk/README.md
index 9abd6837..f5465bdf 100644
--- a/Samples/SimpleInk/README.md
+++ b/Samples/SimpleInk/README.md
@@ -1,6 +1,9 @@
+
+# Simple inking sample
+
This sample demonstrates how to use ink functionality (such as capturing ink from user input and performing handwriting recognition on ink strokes) in Universal Windows apps using C#.
Specifically, this sample covers using the Windows.UI.Input.Inking APIs to do the following:
@@ -11,8 +14,7 @@ Specifically, this sample covers using the Windows.UI.Input.Inking APIs to do th
- Recognize handwriting from ink strokes
- Select ink strokes
-Related topics
---------------
+## Related topics
**Samples**
@@ -22,11 +24,30 @@ Related topics
[**Windows.UI.Input.Inking**](http://msdn.microsoft.com/library/windows/apps/br208524)
-Operating system requirements
------------------------------
+## Operating system requirements
**Client:** Windows 10
**Server:** Windows Server 2016 Technical Preview
-**Phone:** Windows 10
\ No newline at end of file
+**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
+
diff --git a/Samples/SimpleOrientationSensor/README.md b/Samples/SimpleOrientationSensor/README.md
index 2c50004b..2b3329b5 100644
--- a/Samples/SimpleOrientationSensor/README.md
+++ b/Samples/SimpleOrientationSensor/README.md
@@ -2,7 +2,7 @@
category: DevicesSensorsAndPower
--->
-# Simple Orientation Sensor sample
+# Simple orientation sensor sample
This sample demonstrates the use of the Windows.Devices.Sensors.SimpleOrientationSensor API for a simple device orientation sensor.
@@ -29,9 +29,10 @@ When you choose the Enable button for the **Polling** option, the app will retri
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SmartCard/README.md b/Samples/SmartCard/README.md
index e0f232de..8f7b094e 100644
--- a/Samples/SmartCard/README.md
+++ b/Samples/SmartCard/README.md
@@ -1,4 +1,10 @@
-This sample demonstrates how to use the Windows.Devices.SmartCards API to work with smart cards and smart card readers programmatically.
+
+
+# Smart cards sample
+
+This sample demonstrates how to use the Windows.Devices.SmartCards API to work with smart cards and smart card readers programmatically.
**Note** This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 10 and Windows Phone 10.
@@ -24,9 +30,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/SmsSendAndReceive/README.md b/Samples/SmsSendAndReceive/README.md
index d5cd7ad9..f8b5914b 100644
--- a/Samples/SmsSendAndReceive/README.md
+++ b/Samples/SmsSendAndReceive/README.md
@@ -1,4 +1,8 @@
-# SMS Send and Receive Sample
+
+
+# SMS send and receive sample
This sample shows how to use the SMS API (Windows.Devices.Sms) using following scenarios:
- Send text message.
@@ -28,8 +32,10 @@ Hence requires restricted capability to be defined in package manifest.
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SocketActivityStreamSocket/README.md b/Samples/SocketActivityStreamSocket/README.md
index 02064773..1ff06b96 100644
--- a/Samples/SocketActivityStreamSocket/README.md
+++ b/Samples/SocketActivityStreamSocket/README.md
@@ -1,7 +1,8 @@
-# Socket Activity Trigger Stream Socket Sample
+
+# Socket activity trigger stream socket sample
This sample shows how to use the Socket Activity Stream Socket API to keep a socket connection alive beyond the lifetime of the application.
@@ -34,10 +35,10 @@ For more information on network capabilities, see [How to set network capabiliti
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SpatialSound/README.md b/Samples/SpatialSound/README.md
index 5e233cc5..2ad1a295 100644
--- a/Samples/SpatialSound/README.md
+++ b/Samples/SpatialSound/README.md
@@ -1,7 +1,8 @@
-# Spatial Audio sample
+
+# Spatial audio sample
This sample demonstrates how to render spatial audio using HRTF xAPO and XAudio2 API within Universal Applications.
@@ -30,22 +31,16 @@ To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.c
To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-
-Related topics
---------------
-
-**Reference**
-
-
System requirements
-----------------------------
**Client:** Windows 10
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SpeechRecognitionAndSynthesis/README.md b/Samples/SpeechRecognitionAndSynthesis/README.md
index 4b76a5fb..ffce6695 100644
--- a/Samples/SpeechRecognitionAndSynthesis/README.md
+++ b/Samples/SpeechRecognitionAndSynthesis/README.md
@@ -1,7 +1,8 @@
-# Speech Recognition and Synthesis Sample
+
+# Speech recognition and synthesis sample
This sample demonstrates the usage of Speech Recognition and Speech Synthesis (Text-to-speech) within Universal Applications.
@@ -43,3 +44,23 @@ You can disable functionality that requires accepting this policy by turning off
**Server:** Windows Server 2016 Technical Preview
**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
+
diff --git a/Samples/SpeechRecognitionAndSynthesis/js/js/scenario8_ContinuousRecognitionListGrammar.js b/Samples/SpeechRecognitionAndSynthesis/js/js/scenario8_ContinuousRecognitionListGrammar.js
index 5819915a..857f8f75 100644
--- a/Samples/SpeechRecognitionAndSynthesis/js/js/scenario8_ContinuousRecognitionListGrammar.js
+++ b/Samples/SpeechRecognitionAndSynthesis/js/js/scenario8_ContinuousRecognitionListGrammar.js
@@ -119,10 +119,10 @@
if (eventArgs.result.confidence == Windows.Media.SpeechRecognition.SpeechRecognitionConfidence.high ||
eventArgs.result.confidence == Windows.Media.SpeechRecognition.SpeechRecognitionConfidence.medium) {
- resultTextArea.innerText = "Heard: " + eventArgs.result.text + ", (Tag: '" + tag + "', Confidence: " + eventArgs.result.confidence + ")";
+ resultTextArea.innerText = "Heard: " + eventArgs.result.text + ", (Tag: '" + tag + "', Confidence: " + convertConfidenceToString(eventArgs.result.confidence) + ")";
}
else {
- resultTextArea.innerText = "Sorry, I didn't catch that. (Heard: " + eventArgs.result.text + ", Tag: '" + tag + "', Confidence: " + eventArgs.result.confidence + ")";
+ resultTextArea.innerText = "Sorry, I didn't catch that. (Heard: " + eventArgs.result.text + ", Tag: '" + tag + "', Confidence: " + convertConfidenceToString(eventArgs.result.confidence) + ")";
}
}
@@ -242,4 +242,27 @@
}
}
}
+
+ function convertConfidenceToString(confidence) {
+ /// Converts numeric confidence value into text representation of
+ /// Windows.Media.SpeechRecognition.SpeechRecognitionConfidence for visualization.
+ /// The numeric confidence returned by SpeechRecognitionResult.Confidence
+ ///
+ switch (confidence) {
+ case Windows.Media.SpeechRecognition.SpeechRecognitionConfidence.high: {
+ return "high";
+ }
+ case Windows.Media.SpeechRecognition.SpeechRecognitionConfidence.medium: {
+ return "medium";
+ }
+ case Windows.Media.SpeechRecognition.SpeechRecognitionConfidence.low: {
+ return "low";
+ }
+ case Windows.Media.SpeechRecognition.SpeechRecognitionConfidence.rejected: {
+ return "rejected";
+ }
+ default:
+ return "unknown";
+ }
+ }
})();
diff --git a/Samples/SpeechRecognitionAndSynthesis/shared/SRGS/es-ES/SRGSColors.xml b/Samples/SpeechRecognitionAndSynthesis/shared/SRGS/es-ES/SRGSColors.xml
index 93a2f48d..42ffb936 100644
--- a/Samples/SpeechRecognitionAndSynthesis/shared/SRGS/es-ES/SRGSColors.xml
+++ b/Samples/SpeechRecognitionAndSynthesis/shared/SRGS/es-ES/SRGSColors.xml
@@ -9,28 +9,28 @@ xmlns="http://www.w3.org/2001/06/grammar">
-
+ fondo
-
- fondo
-
+ borde
-
- borde
-
+ círculo
-
- círculo
diff --git a/Samples/SpeechRecognitionAndSynthesis/shared/Strings/es-ES/LocalizationSpeechResources.resw b/Samples/SpeechRecognitionAndSynthesis/shared/Strings/es-ES/LocalizationSpeechResources.resw
index a175549d..44f31ede 100644
--- a/Samples/SpeechRecognitionAndSynthesis/shared/Strings/es-ES/LocalizationSpeechResources.resw
+++ b/Samples/SpeechRecognitionAndSynthesis/shared/Strings/es-ES/LocalizationSpeechResources.resw
@@ -184,14 +184,14 @@ red border
green circle
- Tap the microphone and speak to choose colors for the circle, background, and border. Try saying 'blue background, red border, green circle'.
+ Tap the microphone and speak to choose colors for the circle, background, and border. Try saying 'fondo azul, borde rojo, círculo verde'.
- Speak to choose colors for the circle, background, and border. Try saying 'blue background, red border, green circle'.
+ Speak to choose colors for the circle, background, and border. Try saying 'fondo azul, borde rojo, círculo verde'.
SRGS ResultTextBlock content when listening
- Try "blue background, red border, green circle".
+ Try "fondo azul, borde rojo, círculo verde".
UIOptions for SRGS one-shot sample
diff --git a/Samples/SplashScreen/README.md b/Samples/SplashScreen/README.md
index 2b18d2ea..2837b156 100644
--- a/Samples/SplashScreen/README.md
+++ b/Samples/SplashScreen/README.md
@@ -2,7 +2,7 @@
category: ControlsLayoutAndText
--->
-# Splash Screen Sample
+# Splash screen sample
This sample shows how to imitate the splash screen that Windows displays for your app by positioning a similar image correctly when Windows dismisses the splash screen that it displays. This sample uses the [**SplashScreen**](http://msdn.microsoft.com/library/windows/apps/br224763) class in the [**Windows.ApplicationModel.Activation**](http://msdn.microsoft.com/library/windows/apps/br224766) namespace.
@@ -49,9 +49,10 @@ For more info about the concepts and APIs demonstrated in this sample, see these
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/StreamSocket/README.md b/Samples/StreamSocket/README.md
index 938c69f5..f4fdc9c5 100644
--- a/Samples/StreamSocket/README.md
+++ b/Samples/StreamSocket/README.md
@@ -1,6 +1,7 @@
+
# StreamSocket sample
This sample shows you how to a use stream (TCP) socket to send and receive data using the [**StreamSocket**](http://msdn.microsoft.com/library/windows/apps/br226882) and related classes in the [**Windows.Networking.Sockets**](http://msdn.microsoft.com/library/windows/apps/br226960) namespace in your Universal Windows Platform (UWP) app.
@@ -105,10 +106,10 @@ This sample requires that network capabilities be set in the *Package.appxmanife
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Syndication/README.md b/Samples/Syndication/README.md
index 1c9bbeda..32cb1de7 100644
--- a/Samples/Syndication/README.md
+++ b/Samples/Syndication/README.md
@@ -1,6 +1,7 @@
-
+
# Syndication sample
This sample shows you how to retrieve feeds from a web service using classes in the [**Windows.Web.Syndication**](http://msdn.microsoft.com/library/windows/apps/br243632) namespace in your Universal Windows Platform (UWP) app. This sample is provided in the JavaScript, C\#, and C++ programming languages.
@@ -72,10 +73,10 @@ For more information on network capabilities, see [How to set network capabiliti
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/SystemMediaTransportControls/README.md b/Samples/SystemMediaTransportControls/README.md
index 05c943b4..6b1d360d 100644
--- a/Samples/SystemMediaTransportControls/README.md
+++ b/Samples/SystemMediaTransportControls/README.md
@@ -2,7 +2,7 @@
category: AudioVideoAndCamera
--->
-# System Media Transport Controls Sample
+# System media transport controls sample
This sample shows how to use the APIs in the Windows.Media namespace to allow your app to respond to system media events as well as providing the system with metadata about the content that is playing.
@@ -37,9 +37,10 @@ Windows Phone 10
Build the sample
----------------------------
-1. Start Visual Studio 2015 and select File > Open > Project/Solution.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select Build > Build Solution.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
----------------------------
diff --git a/Samples/TextSegmentation/README.md b/Samples/TextSegmentation/README.md
index bdbe906d..d4f11134 100644
--- a/Samples/TextSegmentation/README.md
+++ b/Samples/TextSegmentation/README.md
@@ -1,4 +1,8 @@
-# Text Segmentation API Sample
+
+
+# Text segmentation sample
This sample shows how to identify separate boundaries of individual words in text, called text segments, for any given language. The sample uses the [**Windows.Data.Text**](http://msdn.microsoft.com/library/windows/apps/dn263535) namespace.
@@ -18,9 +22,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/TextSuggestion/README.md b/Samples/TextSuggestion/README.md
index 69cd082a..fcbc0f05 100644
--- a/Samples/TextSuggestion/README.md
+++ b/Samples/TextSuggestion/README.md
@@ -1,5 +1,8 @@
-Text Suggestion API Sample
-============================
+
+
+# Text suggestions sample
This sample shows how to get text suggestion(including Conversion, Prediction, Reverse Conversion) results when it is available to given language.
@@ -9,22 +12,20 @@ This sample shows how to get text suggestion(including Conversion, Prediction, R
[**Windows.Data.Text**](http://msdn.microsoft.com/library/windows/apps/dn263535)
-Operating system requirements
------------------------------
+## Operating system requirements
Client
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/TitleBar/README.md b/Samples/TitleBar/README.md
index 85c01f97..dbb57906 100644
--- a/Samples/TitleBar/README.md
+++ b/Samples/TitleBar/README.md
@@ -1,6 +1,7 @@
+
# Title bar sample
This sample shows various ways of customizing the title bar.
@@ -40,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/Unicode/README.md b/Samples/Unicode/README.md
index 952b5701..152ab317 100644
--- a/Samples/Unicode/README.md
+++ b/Samples/Unicode/README.md
@@ -2,7 +2,7 @@
category: GlobalizationAndLocalization
-->
-# Unicode string processing API sample
+# Unicode string processing sample
Demonstrates how to use the [**UnicodeCharacters**](http://msdn.microsoft.com/library/windows/apps/dn263490) Windows Runtime class in processing Unicode properties in a string. The sample focuses on a subset of the property methods in the class, since their usage pattern is the same. Nonetheless, it does demonstrate how to handle characters in the supplementary plane.
@@ -32,9 +32,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/UserConsentVerifier/README.md b/Samples/UserConsentVerifier/README.md
index 754c21cf..7c58f26b 100644
--- a/Samples/UserConsentVerifier/README.md
+++ b/Samples/UserConsentVerifier/README.md
@@ -1,4 +1,10 @@
-Demonstrates how to use the UserConsentVerifier class to check whether a biometric device is available to request fingerprint consent, and to request fingerprint verification from the user.
+
+
+# UserConsentVerifier sample
+
+Demonstrates how to use the UserConsentVerifier class to check whether a biometric device is available to request fingerprint consent, and to request fingerprint verification from the user.
**Note** This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 10 and Windows Phone 10.
@@ -18,9 +24,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/UserDataAccountManager/README.md b/Samples/UserDataAccountManager/README.md
index ca9a97f7..9174b696 100644
--- a/Samples/UserDataAccountManager/README.md
+++ b/Samples/UserDataAccountManager/README.md
@@ -1,23 +1,41 @@
+--->
+
+# UserDataAccountManager sample
-User Data Account Manager Sample
-============================================
This sample demonstrates how to use the UserDataAccountManager to let the user add, manage, and fix errors for accounts that provide email, calendar, and contacts.
This sample requires the following capabilities:
-appointments
-contacts
-email (restricted capability)
+- appointments
+- contacts
+- email (restricted capability)
+## System requirements
-Related topics
---------------
+**Client:** Windows 10
-Operating system requirements
------------------------------
-Client - Windows 10
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
-Phone - Windows 10
diff --git a/Samples/UserInfo/README.md b/Samples/UserInfo/README.md
new file mode 100644
index 00000000..3d4a470d
--- /dev/null
+++ b/Samples/UserInfo/README.md
@@ -0,0 +1,55 @@
+
+
+# User information sample
+
+This sample obtains information about the users on the computer.
+
+Specifically, this sample demonstrates the following scenarios:
+
+- How to find all users with [the `FindAllAsync` method](https://msdn.microsoft.com/library/windows/apps/windows.system.user.findallasync.aspx).
+- How to retrieve a specific user property with [the `GetPropertyAsync` method](https://msdn.microsoft.com/library/windows/apps/windows.system.user.getpropertyasync.aspx).
+- How to retrieve multiple user properties with [the `GetPropertiesAsync` method](https://msdn.microsoft.com/library/windows/apps/windows.system.user.getpropertiesasync.aspx).
+- How to obtain the profile picture for a user with [the `GetPictureAsync` method](https://msdn.microsoft.com/library/windows/apps/windows.system.user.getpictureasync.aspx).
+- How to monitor users dynamically with [the `CreateWatcher` method](https://msdn.microsoft.com/library/windows/apps/windows.system.user.createwatcher.aspx).
+
+**Note** The Universal Windows app samples require Visual Studio 2015 to build and Windows 10 to execute.
+
+To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.com/fwlink/?LinkID=532421)
+
+To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
+
+## Related topics
+
+### Reference
+
+[**Windows.System.UserProfile** namespace](http://msdn.microsoft.com/library/windows/apps/br241881)
+
+## System requirements
+
+**Client:** Windows 10
+
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.
+
diff --git a/Samples/AccountPictureName/cpp/Package.appxmanifest b/Samples/UserInfo/cpp/Package.appxmanifest
similarity index 77%
rename from Samples/AccountPictureName/cpp/Package.appxmanifest
rename to Samples/UserInfo/cpp/Package.appxmanifest
index eab571cc..d1ae9cb5 100644
--- a/Samples/AccountPictureName/cpp/Package.appxmanifest
+++ b/Samples/UserInfo/cpp/Package.appxmanifest
@@ -7,16 +7,17 @@
IgnorableNamespaces="uap mp">
- Account Picture Name C++ Sample
+ User Info C++ Sample
Microsoft Corporation
Assets\StoreLogo-sdk.png
+ multiple
@@ -30,12 +31,12 @@
+ EntryPoint="UserInfo.App">
@@ -44,13 +45,10 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/Samples/UserInfo/cpp/SampleConfiguration.cpp b/Samples/UserInfo/cpp/SampleConfiguration.cpp
new file mode 100644
index 00000000..a5a7b3a3
--- /dev/null
+++ b/Samples/UserInfo/cpp/SampleConfiguration.cpp
@@ -0,0 +1,26 @@
+// Copyright (c) Microsoft. All rights reserved.
+
+#include "pch.h"
+#include "MainPage.xaml.h"
+#include "SampleConfiguration.h"
+
+using namespace SDKTemplate;
+using namespace Platform;
+using namespace Windows::ApplicationModel;
+using namespace Windows::ApplicationModel::Activation;
+using namespace Windows::Foundation;
+using namespace Windows::Foundation::Collections;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Controls;
+using namespace Windows::UI::Xaml::Controls::Primitives;
+using namespace Windows::UI::Xaml::Data;
+using namespace Windows::UI::Xaml::Input;
+using namespace Windows::UI::Xaml::Interop;
+using namespace Windows::UI::Xaml::Media;
+using namespace Windows::UI::Xaml::Navigation;
+
+Platform::Array^ MainPage::scenariosInner = ref new Platform::Array
+{
+ { "Find users", "SDKTemplate.Scenario1_FindUsers" },
+ { "Watch users", "SDKTemplate.Scenario2_WatchUsers" },
+};
diff --git a/Samples/UserInfo/cpp/SampleConfiguration.h b/Samples/UserInfo/cpp/SampleConfiguration.h
new file mode 100644
index 00000000..767dea21
--- /dev/null
+++ b/Samples/UserInfo/cpp/SampleConfiguration.h
@@ -0,0 +1,78 @@
+// Copyright (c) Microsoft. All rights reserved.
+
+#pragma once
+#include "pch.h"
+
+namespace SDKTemplate
+{
+ value struct Scenario;
+
+ partial ref class MainPage
+ {
+ internal:
+ static property Platform::String^ FEATURE_NAME
+ {
+ Platform::String^ get()
+ {
+ return "User info C++ sample";
+ }
+ }
+
+ static property Platform::Array^ scenarios
+ {
+ Platform::Array^ get()
+ {
+ return scenariosInner;
+ }
+ }
+
+ private:
+ static Platform::Array^ scenariosInner;
+ };
+
+ public value struct Scenario
+ {
+ Platform::String^ Title;
+ Platform::String^ ClassName;
+ };
+
+ // This is an observable object that we data-bind the combo box / list box to.
+ [Windows::UI::Xaml::Data::Bindable]
+ public ref class UserViewModel sealed : public Windows::UI::Xaml::Data::INotifyPropertyChanged
+ {
+ public:
+ UserViewModel(Platform::String^ userId, Platform::String^ displayName)
+ {
+ this->userId = userId;
+ this->DisplayName = displayName;
+ }
+
+ virtual event Windows::UI::Xaml::Data::PropertyChangedEventHandler^ PropertyChanged;
+
+ property Platform::String^ UserId
+ {
+ Platform::String^ get()
+ {
+ return userId;
+ }
+ }
+
+ property Platform::String^ DisplayName
+ {
+ Platform::String^ get()
+ {
+ return displayName;
+ }
+
+ void set(Platform::String^ value)
+ {
+ displayName = value;
+ PropertyChanged(this, ref new Windows::UI::Xaml::Data::PropertyChangedEventArgs("DisplayName"));
+ }
+ }
+
+ private:
+ Platform::String^ userId;
+ Platform::String^ displayName;
+ };
+}
diff --git a/Samples/UserInfo/cpp/Scenario1_FindUsers.xaml.cpp b/Samples/UserInfo/cpp/Scenario1_FindUsers.xaml.cpp
new file mode 100644
index 00000000..b1a760b1
--- /dev/null
+++ b/Samples/UserInfo/cpp/Scenario1_FindUsers.xaml.cpp
@@ -0,0 +1,150 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#include "pch.h"
+#include "Scenario1_FindUsers.xaml.h"
+
+using namespace SDKTemplate;
+
+using namespace concurrency;
+using namespace Platform;
+using namespace Platform::Collections;
+using namespace Windows::Foundation::Collections;
+using namespace Windows::Storage::Streams;
+using namespace Windows::System;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Media::Imaging;
+using namespace Windows::UI::Xaml::Navigation;
+
+Scenario1_FindUsers::Scenario1_FindUsers()
+{
+ InitializeComponent();
+ UserList->DataContext = models;
+}
+
+void Scenario1_FindUsers::OnNavigatedTo(NavigationEventArgs^ e)
+{
+ // Populate the list of users.
+ create_task(User::FindAllAsync()).then([this](IVectorView^ users)
+ {
+ if (users != nullptr)
+ {
+ auto current = begin(users);
+ AddNextUserAsync(current, users).then([this, users]()
+ {
+ if (users->Size > 0)
+ {
+ UserList->SelectedIndex = 0;
+ }
+ });
+ }
+ });
+}
+
+task Scenario1_FindUsers::AddNextUserAsync(VectorViewIterator current, IVectorView^ users)
+{
+ if (current != end(users))
+ {
+ auto task = create_task((*current)->GetPropertyAsync(KnownUserProperties::DisplayName));
+ return task.then([this, current, users](Platform::Object^ result)
+ {
+ auto displayName = safe_cast(result);
+ // Choose a generic name if we do not have access to the actual name.
+ if (displayName->IsEmpty())
+ {
+ displayName = "User #" + nextUserNumber.ToString();
+ nextUserNumber++;
+ }
+ models->Append(ref new UserViewModel((*current)->NonRoamableId, displayName));
+
+ return AddNextUserAsync(current + 1, users);
+ });
+ }
+ else
+ {
+ return create_task([] {});
+ }
+}
+
+void Scenario1_FindUsers::ShowProperties()
+{
+ auto model = safe_cast(UserList->SelectedValue);
+ if (model != nullptr)
+ {
+ ResultsText->Text = "";
+ ProfileImage->Source = nullptr;
+ rootPage->NotifyUser("", NotifyType::StatusMessage);
+
+ User^ user = nullptr;
+ try
+ {
+ user = User::GetFromId(model->UserId);
+ }
+ catch (Exception^ ex)
+ {
+ }
+
+ if (user != nullptr)
+ {
+ auto desiredProperties = ref new Vector();
+ desiredProperties->Append(KnownUserProperties::FirstName);
+ desiredProperties->Append(KnownUserProperties::LastName);
+ desiredProperties->Append(KnownUserProperties::ProviderName);
+ desiredProperties->Append(KnownUserProperties::AccountName);
+ desiredProperties->Append(KnownUserProperties::GuestHost);
+ desiredProperties->Append(KnownUserProperties::PrincipalName);
+ desiredProperties->Append(KnownUserProperties::DomainName);
+ desiredProperties->Append(KnownUserProperties::SessionInitiationProtocolUri);
+
+ // Issue a bulk query for all of the properties above.
+ auto task = create_task(user->GetPropertiesAsync(desiredProperties->GetView()));
+ task.then([this, desiredProperties, user](IPropertySet^ values)
+ {
+ // Generate the results.
+ String^ result = "NonRoamableId: " + user->NonRoamableId + "\n";
+ result += "Type: " + user->Type.ToString() + "\n";
+ result += "AuthenticationStatus: " + user->AuthenticationStatus.ToString() + "\n";
+
+ for (String^ propertyName : desiredProperties)
+ {
+ result += propertyName + ": " + values->Lookup(propertyName) + "\n";
+ }
+
+ ResultsText->Text = result;
+
+ // Get the user's picture.
+ return create_task(user->GetPictureAsync(UserPictureSize::Size64x64));
+ }).then([this](IRandomAccessStreamReference^ streamReference)
+ {
+ if (streamReference != nullptr)
+ {
+ return create_task(streamReference->OpenReadAsync());
+ }
+ else
+ {
+ return create_task([]() -> IRandomAccessStreamWithContentType^ { return nullptr; });
+ }
+ }).then([this](IRandomAccessStreamWithContentType^ stream)
+ {
+ if (stream != nullptr)
+ {
+ auto bitmapImage = ref new BitmapImage();
+ bitmapImage->SetSource(stream);
+ ProfileImage->Source = bitmapImage;
+ }
+ });
+ }
+ else
+ {
+ rootPage->NotifyUser("Could not reacquire the user", NotifyType::ErrorMessage);
+ }
+ }
+}
diff --git a/Samples/AccountPictureName/cpp/SetAccountPicture.xaml.h b/Samples/UserInfo/cpp/Scenario1_FindUsers.xaml.h
similarity index 54%
rename from Samples/AccountPictureName/cpp/SetAccountPicture.xaml.h
rename to Samples/UserInfo/cpp/Scenario1_FindUsers.xaml.h
index e5cf9fdb..c0fdebd6 100644
--- a/Samples/AccountPictureName/cpp/SetAccountPicture.xaml.h
+++ b/Samples/UserInfo/cpp/Scenario1_FindUsers.xaml.h
@@ -11,26 +11,24 @@
#pragma once
-#include "SetAccountPicture.g.h"
+#include "Scenario1_FindUsers.g.h"
#include "MainPage.xaml.h"
namespace SDKTemplate
{
[Windows::Foundation::Metadata::WebHostHidden]
- public ref class SetAccountPicture sealed
+ public ref class Scenario1_FindUsers sealed
{
public:
- SetAccountPicture();
+ Scenario1_FindUsers();
protected:
virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
- virtual void OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
-
+ void ShowProperties();
private:
- MainPage^ rootPage;
- void SetImageButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void SetVideoButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void PictureChanged(Platform::Object^ sender, Platform::Object^ e);
+ MainPage^ rootPage = MainPage::Current;
+ Platform::Collections::Vector^ models = ref new Platform::Collections::Vector();
+ int nextUserNumber = 1;
- Windows::Foundation::EventRegistrationToken accountPictureChangedToken;
+ concurrency::task AddNextUserAsync(Platform::Collections::VectorViewIterator current, Windows::Foundation::Collections::IVectorView^ users);
};
}
diff --git a/Samples/UserInfo/cpp/Scenario2_WatchUsers.xaml.cpp b/Samples/UserInfo/cpp/Scenario2_WatchUsers.xaml.cpp
new file mode 100644
index 00000000..e5635cd6
--- /dev/null
+++ b/Samples/UserInfo/cpp/Scenario2_WatchUsers.xaml.cpp
@@ -0,0 +1,180 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#include "pch.h"
+#include "Scenario2_WatchUsers.xaml.h"
+
+using namespace SDKTemplate;
+
+using namespace concurrency;
+using namespace Platform;
+using namespace Windows::Foundation;
+using namespace Windows::System;
+using namespace Windows::UI::Core;
+using namespace Windows::UI::Xaml::Navigation;
+
+Scenario2_WatchUsers::Scenario2_WatchUsers()
+{
+ InitializeComponent();
+ UserList->DataContext = models;
+}
+
+void Scenario2_WatchUsers::OnNavigatedFrom(NavigationEventArgs^ e)
+{
+ StopWatching();
+}
+
+void Scenario2_WatchUsers::StartWatching()
+{
+ rootPage->NotifyUser("", NotifyType::StatusMessage);
+
+ nextUserNumber = 1;
+ models->Clear();
+ userWatcher = User::CreateWatcher();
+ userAddedToken = userWatcher->Added += ref new TypedEventHandler(this, &Scenario2_WatchUsers::OnUserAdded);
+ userUpdatedToken = userWatcher->Updated += ref new TypedEventHandler(this, &Scenario2_WatchUsers::OnUserUpdated);
+ userRemovedToken = userWatcher->Removed += ref new TypedEventHandler(this, &Scenario2_WatchUsers::OnUserRemoved);
+ enumerationCompletedToken = userWatcher->EnumerationCompleted += ref new TypedEventHandler(this, &Scenario2_WatchUsers::OnEnumerationCompleted);
+ watcherStoppedToken = userWatcher->Stopped += ref new TypedEventHandler(this, &Scenario2_WatchUsers::OnWatcherStopped);
+ userWatcher->Start();
+ StartButton->IsEnabled = false;
+ StopButton->IsEnabled = true;
+}
+
+void Scenario2_WatchUsers::StopWatching()
+{
+ if (userWatcher != nullptr)
+ {
+ // Unregister all event handlers in case events are in flight.
+ userWatcher->Added -= userAddedToken;
+ userWatcher->Updated -= userUpdatedToken;
+ userWatcher->Removed -= userRemovedToken;
+ userWatcher->EnumerationCompleted -= enumerationCompletedToken;
+ userWatcher->Stopped -= watcherStoppedToken;
+ userWatcher->Stop();
+ userWatcher = nullptr;
+ models->Clear();
+ StartButton->IsEnabled = true;
+ StopButton->IsEnabled = false;
+ }
+}
+
+UserViewModel^ Scenario2_WatchUsers::FindModelByUserId(String^ userId)
+{
+ for (UserViewModel^ model : models)
+ {
+ if (model->UserId == userId)
+ {
+ return model;
+ }
+ }
+ return nullptr;
+}
+
+task Scenario2_WatchUsers::GetDisplayNameOrGenericNameAsync(User^ user)
+{
+ // Try to get the display name.
+ auto task = create_task(user->GetPropertyAsync(KnownUserProperties::DisplayName));
+ return task.then([this](Object^ result)
+ {
+ auto displayName = safe_cast(result);
+ if (displayName->IsEmpty())
+ {
+ displayName = "User #" + nextUserNumber.ToString();
+ ++nextUserNumber;
+ }
+ return displayName;
+ });
+}
+
+void Scenario2_WatchUsers::OnUserAdded(UserWatcher^ sender, UserChangedEventArgs^ e)
+{
+ User^ user = e->User;
+
+ // UI work must happen on the UI thread.
+ rootPage->Dispatcher->RunAsync(CoreDispatcherPriority::Low, ref new DispatchedHandler(
+ [this, user]()
+ {
+ // Create the user with "..." as the temporary display name.
+ // Add it right away, because it might get removed while the
+ // "await GetDisplayNameOrGenericNameAsync()" is running.
+ auto model = ref new UserViewModel(user->NonRoamableId, L"\u2026");
+ models->Append(model);
+
+ // Try to get the display name.
+ GetDisplayNameOrGenericNameAsync(user).then([model](String^ displayName)
+ {
+ model->DisplayName = displayName;
+ });
+ }));
+}
+
+void Scenario2_WatchUsers::OnUserUpdated(UserWatcher^ sender, UserChangedEventArgs^ e)
+{
+ User^ user = e->User;
+
+ // UI work must happen on the UI thread.
+ rootPage->Dispatcher->RunAsync(CoreDispatcherPriority::Low, ref new DispatchedHandler(
+ [this, user]()
+ {
+ // Look for the user in our collection and update the display name.
+ UserViewModel^ model = FindModelByUserId(user->NonRoamableId);
+ if (model != nullptr)
+ {
+ GetDisplayNameOrGenericNameAsync(user).then([model](String^ displayName)
+ {
+ model->DisplayName = displayName;
+ });
+ }
+ }));
+}
+
+void Scenario2_WatchUsers::OnUserRemoved(UserWatcher^ sender, UserChangedEventArgs^ e)
+{
+ User^ user = e->User;
+
+ // UI work must happen on the UI thread.
+ rootPage->Dispatcher->RunAsync(CoreDispatcherPriority::Low, ref new DispatchedHandler(
+ [this, user]()
+ {
+ // Look for the user in our collection and remove it.
+ UserViewModel^ model = FindModelByUserId(user->NonRoamableId);
+ if (model != nullptr)
+ {
+ unsigned int index;
+ if (models->IndexOf(model, &index))
+ {
+ models->RemoveAt(index);
+ }
+ }
+ }));
+}
+
+void Scenario2_WatchUsers::OnEnumerationCompleted(UserWatcher^ sender, Object^ e)
+{
+ // UI work must happen on the UI thread.
+ rootPage->Dispatcher->RunAsync(CoreDispatcherPriority::Low, ref new DispatchedHandler(
+ [this]()
+ {
+ rootPage->NotifyUser("Enumeration complete. Watching for changes...", NotifyType::StatusMessage);
+ }));
+}
+
+void Scenario2_WatchUsers::OnWatcherStopped(UserWatcher^ sender, Object^ e)
+{
+ // UI work must happen on the UI thread.
+ rootPage->Dispatcher->RunAsync(CoreDispatcherPriority::Low, ref new DispatchedHandler(
+ [this]()
+ {
+ StopWatching();
+ }));
+
+}
diff --git a/Samples/UserInfo/cpp/Scenario2_WatchUsers.xaml.h b/Samples/UserInfo/cpp/Scenario2_WatchUsers.xaml.h
new file mode 100644
index 00000000..20a88155
--- /dev/null
+++ b/Samples/UserInfo/cpp/Scenario2_WatchUsers.xaml.h
@@ -0,0 +1,49 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#pragma once
+
+#include "Scenario2_WatchUsers.g.h"
+#include "MainPage.xaml.h"
+
+namespace SDKTemplate
+{
+ [Windows::Foundation::Metadata::WebHostHidden]
+ public ref class Scenario2_WatchUsers sealed
+ {
+ public:
+ Scenario2_WatchUsers();
+
+ protected:
+ virtual void OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
+ void StartWatching();
+ void StopWatching();
+ private:
+ MainPage^ rootPage = MainPage::Current;
+ Platform::Collections::Vector^ models = ref new Platform::Collections::Vector();
+ int nextUserNumber = 1;
+ Windows::System::UserWatcher^ userWatcher = nullptr;
+
+ Windows::Foundation::EventRegistrationToken userAddedToken{};
+ Windows::Foundation::EventRegistrationToken userUpdatedToken{};
+ Windows::Foundation::EventRegistrationToken userRemovedToken{};
+ Windows::Foundation::EventRegistrationToken enumerationCompletedToken{};
+ Windows::Foundation::EventRegistrationToken watcherStoppedToken{};
+
+ UserViewModel^ FindModelByUserId(Platform::String^ userId);
+ concurrency::task GetDisplayNameOrGenericNameAsync(Windows::System::User^ user);
+ void OnUserAdded(Windows::System::UserWatcher^ sender, Windows::System::UserChangedEventArgs^ e);
+ void OnUserUpdated(Windows::System::UserWatcher^ sender, Windows::System::UserChangedEventArgs^ e);
+ void OnUserRemoved(Windows::System::UserWatcher^ sender, Windows::System::UserChangedEventArgs^ e);
+ void OnEnumerationCompleted(Windows::System::UserWatcher^ sender, Platform::Object^ e);
+ void OnWatcherStopped(Windows::System::UserWatcher^ sender, Platform::Object^ e);
+ };
+}
diff --git a/Samples/AccountPictureName/cpp/AccountPictureName.sln b/Samples/UserInfo/cpp/UserInfo.sln
similarity index 93%
rename from Samples/AccountPictureName/cpp/AccountPictureName.sln
rename to Samples/UserInfo/cpp/UserInfo.sln
index 80b5afae..d151a8f0 100644
--- a/Samples/AccountPictureName/cpp/AccountPictureName.sln
+++ b/Samples/UserInfo/cpp/UserInfo.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22823.1
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AccountPictureName", "AccountPictureName.vcxproj", "{C5B886A7-8300-46FF-B533-9613DE2AF637}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UserInfo", "UserInfo.vcxproj", "{C5B886A7-8300-46FF-B533-9613DE2AF637}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Samples/AccountPictureName/cpp/AccountPictureName.vcxproj b/Samples/UserInfo/cpp/UserInfo.vcxproj
similarity index 91%
rename from Samples/AccountPictureName/cpp/AccountPictureName.vcxproj
rename to Samples/UserInfo/cpp/UserInfo.vcxproj
index 176706c6..7eff76f2 100644
--- a/Samples/AccountPictureName/cpp/AccountPictureName.vcxproj
+++ b/Samples/UserInfo/cpp/UserInfo.vcxproj
@@ -151,17 +151,11 @@
..\..\..\SharedContent\cpp\MainPage.xaml
-
- ..\shared\GetAccountPicture.xaml
+
+ ..\shared\Scenario1_FindUsers.xaml
-
- ..\shared\GetUserDisplayName.xaml
-
-
- ..\shared\GetUserFirstAndLastName.xaml
-
-
- ..\shared\SetAccountPicture.xaml
+
+ ..\shared\Scenario2_WatchUsers.xaml
@@ -171,10 +165,8 @@
Designer
-
-
-
-
+
+
Styles\Styles.xaml
@@ -200,17 +192,11 @@
Create
-
- ..\shared\GetAccountPicture.xaml
+
+ ..\shared\Scenario1_FindUsers.xaml
-
- ..\shared\GetUserDisplayName.xaml
-
-
- ..\shared\GetUserFirstAndLastName.xaml
-
-
- ..\shared\SetAccountPicture.xaml
+
+ ..\shared\Scenario2_WatchUsers.xaml
@@ -236,9 +222,6 @@
Assets\windows-sdk.png
-
-
-
diff --git a/Samples/AccountPictureName/cpp/AccountPictureName.vcxproj.filters b/Samples/UserInfo/cpp/UserInfo.vcxproj.filters
similarity index 75%
rename from Samples/AccountPictureName/cpp/AccountPictureName.vcxproj.filters
rename to Samples/UserInfo/cpp/UserInfo.vcxproj.filters
index 21f9938e..8ecd3b4a 100644
--- a/Samples/AccountPictureName/cpp/AccountPictureName.vcxproj.filters
+++ b/Samples/UserInfo/cpp/UserInfo.vcxproj.filters
@@ -17,20 +17,16 @@
-
-
-
-
+
+
-
-
-
-
+
+
@@ -40,10 +36,8 @@
Styles
-
-
-
-
+
+
diff --git a/Samples/AccountPictureName/cpp/pch.cpp b/Samples/UserInfo/cpp/pch.cpp
similarity index 100%
rename from Samples/AccountPictureName/cpp/pch.cpp
rename to Samples/UserInfo/cpp/pch.cpp
diff --git a/Samples/AccountPictureName/cpp/pch.h b/Samples/UserInfo/cpp/pch.h
similarity index 80%
rename from Samples/AccountPictureName/cpp/pch.h
rename to Samples/UserInfo/cpp/pch.h
index 2662955e..1dcc72eb 100644
--- a/Samples/AccountPictureName/cpp/pch.h
+++ b/Samples/UserInfo/cpp/pch.h
@@ -7,5 +7,4 @@
#include
#include
-#include "SampleConfiguration.h"
#include "App.xaml.h"
diff --git a/Samples/AccountPictureName/cs/Package.appxmanifest b/Samples/UserInfo/cs/Package.appxmanifest
similarity index 78%
rename from Samples/AccountPictureName/cs/Package.appxmanifest
rename to Samples/UserInfo/cs/Package.appxmanifest
index e1b4540a..6ab09933 100644
--- a/Samples/AccountPictureName/cs/Package.appxmanifest
+++ b/Samples/UserInfo/cs/Package.appxmanifest
@@ -7,7 +7,7 @@
IgnorableNamespaces="uap mp">
@@ -15,9 +15,10 @@
- Account Picture Name C# Sample
+ User Info C# Sample
Microsoft Corporation
Assets\StoreLogo-sdk.png
+ multiple
@@ -31,12 +32,12 @@
+ EntryPoint="UserInfo.App">
@@ -45,13 +46,10 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/Samples/UserInfo/cs/SampleConfiguration.cs b/Samples/UserInfo/cs/SampleConfiguration.cs
new file mode 100644
index 00000000..17ddf892
--- /dev/null
+++ b/Samples/UserInfo/cs/SampleConfiguration.cs
@@ -0,0 +1,71 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.System;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+
+namespace SDKTemplate
+{
+ public partial class MainPage : Page
+ {
+ public const string FEATURE_NAME = "Account picture name C# sample";
+
+ List scenarios = new List
+ {
+ new Scenario() { Title = "Find users", ClassType = typeof(Scenario1_FindUsers) },
+ new Scenario() { Title = "Watch users", ClassType = typeof(Scenario2_WatchUsers) },
+ };
+ }
+
+ public class Scenario
+ {
+ public string Title { get; set; }
+ public Type ClassType { get; set; }
+ }
+
+ // This is an observable object that we data-bind the combo box / list box to.
+ public class UserViewModel : INotifyPropertyChanged
+ {
+ public UserViewModel(String userId, String displayName)
+ {
+ this.UserId = userId;
+ this.displayName = displayName;
+ }
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ public String UserId { get; private set; }
+ public String DisplayName
+ {
+ get
+ {
+ return displayName;
+ }
+ set
+ {
+ displayName = value;
+ if (PropertyChanged != null)
+ {
+ PropertyChanged(this, new PropertyChangedEventArgs("DisplayName"));
+ }
+ }
+ }
+
+ String displayName;
+ }
+}
diff --git a/Samples/UserInfo/cs/Scenario1_FindUsers.xaml.cs b/Samples/UserInfo/cs/Scenario1_FindUsers.xaml.cs
new file mode 100644
index 00000000..0b5e3378
--- /dev/null
+++ b/Samples/UserInfo/cs/Scenario1_FindUsers.xaml.cs
@@ -0,0 +1,117 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using Windows.Foundation.Collections;
+using Windows.Storage.Streams;
+using Windows.System;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Media.Imaging;
+using Windows.UI.Xaml.Navigation;
+
+namespace SDKTemplate
+{
+ public sealed partial class Scenario1_FindUsers : Page
+ {
+ private MainPage rootPage;
+
+ public Scenario1_FindUsers()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override async void OnNavigatedTo(NavigationEventArgs e)
+ {
+ rootPage = MainPage.Current;
+
+ // Populate the list of users.
+ IReadOnlyList users = await User.FindAllAsync();
+ var observableUsers = new ObservableCollection();
+ int userNumber = 1;
+ foreach (User user in users)
+ {
+ string displayName = (string)await user.GetPropertyAsync(KnownUserProperties.DisplayName);
+
+ // Choose a generic name if we do not have access to the actual name.
+ if (String.IsNullOrEmpty(displayName))
+ {
+ displayName = "User #" + userNumber.ToString();
+ userNumber++;
+ }
+ observableUsers.Add(new UserViewModel(user.NonRoamableId, displayName));
+ }
+ UserList.DataContext = observableUsers;
+ if (users.Count > 0)
+ {
+ UserList.SelectedIndex = 0;
+ }
+ }
+
+ private async void Show_Click(object sender, RoutedEventArgs e)
+ {
+ var selectedUser = (UserViewModel)UserList.SelectedValue;
+ if (selectedUser != null)
+ {
+ ResultsText.Text = "";
+ ProfileImage.Source = null;
+ rootPage.NotifyUser("", NotifyType.StatusMessage);
+ try
+ {
+ User user = User.GetFromId(selectedUser.UserId);
+
+ // Start with some fixed properties.
+ String result = "NonRoamableId: " + user.NonRoamableId + "\n";
+ result += "Type: " + user.Type.ToString() + "\n";
+ result += "AuthenticationStatus: " + user.AuthenticationStatus.ToString() + "\n";
+
+ // Build a list of all the properties we want.
+ String[] desiredProperties = new String[]
+ {
+ KnownUserProperties.FirstName,
+ KnownUserProperties.LastName,
+ KnownUserProperties.ProviderName,
+ KnownUserProperties.AccountName,
+ KnownUserProperties.GuestHost,
+ KnownUserProperties.PrincipalName,
+ KnownUserProperties.DomainName,
+ KnownUserProperties.SessionInitiationProtocolUri,
+ };
+ // Issue a bulk query for all of the properties.
+ IPropertySet values = await user.GetPropertiesAsync(desiredProperties);
+
+ // Add those properties to our results.
+ foreach (String property in desiredProperties)
+ {
+ result += property + ": " + values[property] + "\n";
+ }
+ ResultsText.Text = result;
+
+ // Get the user's picture.
+ IRandomAccessStreamReference streamReference = await user.GetPictureAsync(UserPictureSize.Size64x64);
+ if (streamReference != null)
+ {
+ IRandomAccessStream stream = await streamReference.OpenReadAsync();
+ BitmapImage bitmapImage = new BitmapImage();
+ bitmapImage.SetSource(stream);
+ ProfileImage.Source = bitmapImage;
+ }
+ }
+ catch (Exception ex)
+ {
+ rootPage.NotifyUser(ex.Message, NotifyType.ErrorMessage);
+ }
+ }
+ }
+ }
+}
diff --git a/Samples/UserInfo/cs/Scenario2_WatchUsers.xaml.cs b/Samples/UserInfo/cs/Scenario2_WatchUsers.xaml.cs
new file mode 100644
index 00000000..fd3c8a7e
--- /dev/null
+++ b/Samples/UserInfo/cs/Scenario2_WatchUsers.xaml.cs
@@ -0,0 +1,174 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.ObjectModel;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+using Windows.System;
+using Windows.UI.Core;
+using System.Threading.Tasks;
+
+namespace SDKTemplate
+{
+ public sealed partial class Scenario2_WatchUsers : Page
+ {
+ MainPage rootPage = MainPage.Current;
+ public ObservableCollection Users = new ObservableCollection();
+ int userNumber = 1;
+ UserWatcher userWatcher = null;
+
+ public Scenario2_WatchUsers()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ rootPage = MainPage.Current;
+ }
+
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ StopWatching();
+ }
+
+ private void StartWatching()
+ {
+ rootPage.NotifyUser("", NotifyType.StatusMessage);
+
+ userNumber = 1;
+ Users.Clear();
+ userWatcher = User.CreateWatcher();
+ userWatcher.Added += OnUserAdded;
+ userWatcher.Updated += OnUserUpdated;
+ userWatcher.Removed += OnUserRemoved;
+ userWatcher.EnumerationCompleted += OnEnumerationCompleted;
+ userWatcher.Stopped += OnWatcherStopped;
+ userWatcher.Start();
+ StartButton.IsEnabled = false;
+ StopButton.IsEnabled = true;
+ }
+
+
+ private void StopWatching()
+ {
+ if (userWatcher != null)
+ {
+ // Unregister all event handlers in case events are in flight.
+ userWatcher.Added -= OnUserAdded;
+ userWatcher.Updated -= OnUserUpdated;
+ userWatcher.Removed -= OnUserRemoved;
+ userWatcher.EnumerationCompleted -= OnEnumerationCompleted;
+ userWatcher.Stopped -= OnWatcherStopped;
+ userWatcher.Stop();
+ userWatcher = null;
+ Users.Clear();
+ StartButton.IsEnabled = true;
+ StopButton.IsEnabled = false;
+ }
+ }
+
+ private UserViewModel FindModelByUserId(string userId)
+ {
+ foreach (UserViewModel model in Users)
+ {
+ if (model.UserId == userId)
+ {
+ return model;
+ }
+ }
+ return null;
+ }
+
+ private async Task GetDisplayNameOrGenericNameAsync(User user)
+ {
+ // Try to get the display name.
+ string displayName = (string)await user.GetPropertyAsync(KnownUserProperties.DisplayName);
+
+ // Choose a generic name if we do not have access to the actual name.
+ if (String.IsNullOrEmpty(displayName))
+ {
+ displayName = "User #" + userNumber.ToString();
+ userNumber++;
+ }
+ return displayName;
+ }
+
+ private async void OnUserAdded(UserWatcher sender, UserChangedEventArgs e)
+ {
+ User user = e.User;
+
+ // UI work must happen on the UI thread.
+ await rootPage.Dispatcher.RunAsync(CoreDispatcherPriority.Low, async () =>
+ {
+ // Create the user with "..." as the temporary display name.
+ // Add it right away, because it might get removed while the
+ // "await GetDisplayNameOrGenericNameAsync()" is running.
+ var model = new UserViewModel(user.NonRoamableId, "\u2026");
+ Users.Add(model);
+
+ // Try to get the display name.
+ model.DisplayName = await GetDisplayNameOrGenericNameAsync(user);
+ });
+ }
+
+ private async void OnUserUpdated(UserWatcher sender, UserChangedEventArgs e)
+ {
+ User user = e.User;
+
+ // UI work must happen on the UI thread.
+ await rootPage.Dispatcher.RunAsync(CoreDispatcherPriority.Low, async () =>
+ {
+ // Look for the user in our collection and update the display name.
+ UserViewModel model = FindModelByUserId(user.NonRoamableId);
+ if (model != null)
+ {
+ model.DisplayName = await GetDisplayNameOrGenericNameAsync(user);
+ }
+ });
+ }
+
+ private async void OnUserRemoved(UserWatcher sender, UserChangedEventArgs e)
+ {
+ User user = e.User;
+
+ // UI work must happen on the UI thread.
+ await rootPage.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
+ {
+ // Look for the user in our collection and remove it.
+ UserViewModel model = FindModelByUserId(user.NonRoamableId);
+ if (model != null)
+ {
+ Users.Remove(model);
+ }
+ });
+ }
+
+ private async void OnEnumerationCompleted(UserWatcher sender, Object e)
+ {
+ // UI work must happen on the UI thread.
+ await rootPage.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
+ {
+ rootPage.NotifyUser("Enumeration complete. Watching for changes...", NotifyType.StatusMessage);
+ });
+ }
+
+ private async void OnWatcherStopped(UserWatcher sender, Object e)
+ {
+ // UI work must happen on the UI thread.
+ await rootPage.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
+ {
+ StopWatching();
+ });
+ }
+ }
+}
diff --git a/Samples/AccountPictureName/cs/AccountPictureName.csproj b/Samples/UserInfo/cs/UserInfo.csproj
similarity index 85%
rename from Samples/AccountPictureName/cs/AccountPictureName.csproj
rename to Samples/UserInfo/cs/UserInfo.csproj
index c0acb755..cb0b2fb3 100644
--- a/Samples/AccountPictureName/cs/AccountPictureName.csproj
+++ b/Samples/UserInfo/cs/UserInfo.csproj
@@ -8,7 +8,7 @@
AppContainerExe
Properties
SDKTemplate
- AccountPictureName
+ UserInfo
en-US
UAP
10.0.10240.0
@@ -103,17 +103,11 @@
Properties\AssemblyInfo.cs
-
- GetUserDisplayName.xaml
+
+ Scenario1_FindUsers.xaml
-
- GetAccountPicture.xaml
-
-
- GetUserFirstAndLastName.xaml
-
-
- SetAccountPicture.xaml
+
+ Scenario2_WatchUsers.xaml
@@ -132,23 +126,13 @@
MSBuild:Compile
Designer
-
- GetUserDisplayName.xaml
+
+ Scenario1_FindUsers.xaml
MSBuild:Compile
Designer
-
- GetAccountPicture.xaml
- MSBuild:Compile
- Designer
-
-
- GetUserFirstAndLastName.xaml
- MSBuild:Compile
- Designer
-
-
- SetAccountPicture.xaml
+
+ Scenario2_WatchUsers.xaml
MSBuild:Compile
Designer
@@ -184,11 +168,6 @@
Assets\windows-sdk.png
-
-
- Microsoft Desktop Extension SDK for Universal App Platform
-
-
14.0
diff --git a/Samples/UserInfo/cs/UserInfo.sln b/Samples/UserInfo/cs/UserInfo.sln
new file mode 100644
index 00000000..35dd009c
--- /dev/null
+++ b/Samples/UserInfo/cs/UserInfo.sln
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.23107.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserInfo", "UserInfo.csproj", "{CF1CD0D5-BF6B-457A-9927-8079FC667CA4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|ARM.ActiveCfg = Debug|ARM
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|ARM.Build.0 = Debug|ARM
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|ARM.Deploy.0 = Debug|ARM
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x64.ActiveCfg = Debug|x64
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x64.Build.0 = Debug|x64
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x64.Deploy.0 = Debug|x64
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x86.ActiveCfg = Debug|x86
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x86.Build.0 = Debug|x86
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Debug|x86.Deploy.0 = Debug|x86
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|ARM.ActiveCfg = Release|ARM
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|ARM.Build.0 = Release|ARM
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|ARM.Deploy.0 = Release|ARM
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x64.ActiveCfg = Release|x64
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x64.Build.0 = Release|x64
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x64.Deploy.0 = Release|x64
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x86.ActiveCfg = Release|x86
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x86.Build.0 = Release|x86
+ {CF1CD0D5-BF6B-457A-9927-8079FC667CA4}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/AccountPictureName/cs/project.json b/Samples/UserInfo/cs/project.json
similarity index 100%
rename from Samples/AccountPictureName/cs/project.json
rename to Samples/UserInfo/cs/project.json
diff --git a/Samples/AccountPictureName/js/Microsoft.WinJS.4.0/css/placeholder.txt b/Samples/UserInfo/js/Microsoft.WinJS.4.0/css/placeholder.txt
similarity index 100%
rename from Samples/AccountPictureName/js/Microsoft.WinJS.4.0/css/placeholder.txt
rename to Samples/UserInfo/js/Microsoft.WinJS.4.0/css/placeholder.txt
diff --git a/Samples/AccountPictureName/js/Microsoft.WinJS.4.0/fonts/placeholder b/Samples/UserInfo/js/Microsoft.WinJS.4.0/fonts/placeholder
similarity index 100%
rename from Samples/AccountPictureName/js/Microsoft.WinJS.4.0/fonts/placeholder
rename to Samples/UserInfo/js/Microsoft.WinJS.4.0/fonts/placeholder
diff --git a/Samples/AccountPictureName/js/Microsoft.WinJS.4.0/js/en-US/placeholder.txt b/Samples/UserInfo/js/Microsoft.WinJS.4.0/js/en-US/placeholder.txt
similarity index 100%
rename from Samples/AccountPictureName/js/Microsoft.WinJS.4.0/js/en-US/placeholder.txt
rename to Samples/UserInfo/js/Microsoft.WinJS.4.0/js/en-US/placeholder.txt
diff --git a/Samples/AccountPictureName/js/Package.appxmanifest b/Samples/UserInfo/js/Package.appxmanifest
similarity index 83%
rename from Samples/AccountPictureName/js/Package.appxmanifest
rename to Samples/UserInfo/js/Package.appxmanifest
index 0103b16e..ce9bda2c 100644
--- a/Samples/AccountPictureName/js/Package.appxmanifest
+++ b/Samples/UserInfo/js/Package.appxmanifest
@@ -13,9 +13,10 @@
- Account Picture Name JS Sample
+ User Info JS Sample
Microsoft Corporation
images\storelogo-sdk.png
+ multiple
@@ -33,12 +34,11 @@
StartPage="default.html">
-
@@ -46,14 +46,11 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/Samples/AccountPictureName/js/AccountPictureName.jsproj b/Samples/UserInfo/js/UserInfo.jsproj
similarity index 93%
rename from Samples/AccountPictureName/js/AccountPictureName.jsproj
rename to Samples/UserInfo/js/UserInfo.jsproj
index cb9c8eac..8eead961 100644
--- a/Samples/AccountPictureName/js/AccountPictureName.jsproj
+++ b/Samples/UserInfo/js/UserInfo.jsproj
@@ -60,10 +60,8 @@
default.html
-
-
-
-
+
+
images\microsoft-sdk.png
@@ -86,10 +84,8 @@
js\default.js
-
-
-
-
+
+
Microsoft.WinJS.4.0\css\ui-dark.css
diff --git a/Samples/AccountPictureName/js/AccountPictureName.sln b/Samples/UserInfo/js/UserInfo.sln
similarity index 87%
rename from Samples/AccountPictureName/js/AccountPictureName.sln
rename to Samples/UserInfo/js/UserInfo.sln
index 28462490..2030abd8 100644
--- a/Samples/AccountPictureName/js/AccountPictureName.sln
+++ b/Samples/UserInfo/js/UserInfo.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013 for Windows
VisualStudioVersion = 12.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "AccountPictureName", "AccountPictureName.jsproj", "{9EE3BA23-05BA-402A-A8B6-F3281C3F8B2C}"
+Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "UserInfo", "UserInfo.jsproj", "{9EE3BA23-05BA-402A-A8B6-F3281C3F8B2C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Samples/AccountPictureName/js/css/placeholder.txt b/Samples/UserInfo/js/css/placeholder.txt
similarity index 100%
rename from Samples/AccountPictureName/js/css/placeholder.txt
rename to Samples/UserInfo/js/css/placeholder.txt
diff --git a/Samples/UserInfo/js/html/scenario1-findUsers.html b/Samples/UserInfo/js/html/scenario1-findUsers.html
new file mode 100644
index 00000000..0a3653f8
--- /dev/null
+++ b/Samples/UserInfo/js/html/scenario1-findUsers.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Find users and display user properties.
+ In order to retrieve user properties, you must declare the userAccountInformation
+ capability in your application manifest.
+ In order to find multiple users, you must set <uap:SupportedUsers>multiple</uap:SupportedUsers>
+ in your application manifest.
+
+
+
+
+
+
+
+
+ Show properties
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/AccountPictureName/js/html/userDisplayName.html b/Samples/UserInfo/js/html/scenario2-watchUsers.html
similarity index 51%
rename from Samples/AccountPictureName/js/html/userDisplayName.html
rename to Samples/UserInfo/js/html/scenario2-watchUsers.html
index b04d02ff..50587545 100644
--- a/Samples/AccountPictureName/js/html/userDisplayName.html
+++ b/Samples/UserInfo/js/html/scenario2-watchUsers.html
@@ -7,7 +7,7 @@ Copyright (c) Microsoft Corporation. All rights reserved
-
+
@@ -15,13 +15,15 @@ Copyright (c) Microsoft Corporation. All rights reserved
-
Get the DisplayName for the current user.
+ Maintain a list of users with a UserWatcher
-
- Get DisplayName
-
+
+ Start watching
+ Stop watching
+
+
diff --git a/Samples/AccountPictureName/js/images/placeholder.txt b/Samples/UserInfo/js/images/placeholder.txt
similarity index 100%
rename from Samples/AccountPictureName/js/images/placeholder.txt
rename to Samples/UserInfo/js/images/placeholder.txt
diff --git a/Samples/UserInfo/js/js/sample-configuration.js b/Samples/UserInfo/js/js/sample-configuration.js
new file mode 100644
index 00000000..02578298
--- /dev/null
+++ b/Samples/UserInfo/js/js/sample-configuration.js
@@ -0,0 +1,17 @@
+//// Copyright (c) Microsoft Corporation. All rights reserved
+
+(function () {
+ "use strict";
+
+ var sampleTitle = "Account picture name JS sample";
+
+ var scenarios = [
+ { url: "/html/scenario1-findUsers.html", title: "Find users" },
+ { url: "/html/scenario2-watchUsers.html", title: "Watch users" },
+ ];
+
+ WinJS.Namespace.define("SdkSample", {
+ sampleTitle: sampleTitle,
+ scenarios: new WinJS.Binding.List(scenarios)
+ });
+})();
diff --git a/Samples/UserInfo/js/js/scenario1-findUsers.js b/Samples/UserInfo/js/js/scenario1-findUsers.js
new file mode 100644
index 00000000..7b3e000c
--- /dev/null
+++ b/Samples/UserInfo/js/js/scenario1-findUsers.js
@@ -0,0 +1,131 @@
+//// Copyright (c) Microsoft Corporation. All rights reserved
+
+(function () {
+ "use strict";
+
+ var System = Windows.System;
+ var User = System.User;
+ var KnownUserProperties = System.KnownUserProperties;
+ var UserPictureSize = System.UserPictureSize;
+
+ var userTypeNames = [ "LocalUser", "RemoteUser", "LocalGuest", "RemoteGuest" ];
+ var authenticationStatusNames = [ "Unauthenticated", "LocallyAuthenticated", "RemotelyAuthenticated" ];
+
+ var nextUserNumber = 1;
+ var userList;
+ var resultsText;
+ var profileImage;
+
+ var page = WinJS.UI.Pages.define("/html/scenario1-findUsers.html", {
+ ready: function (element, options) {
+ userList = document.getElementById("userList");
+ resultsText = document.getElementById("resultsText");
+ profileImage = document.getElementById("profileImage");
+
+ document.getElementById("showPropertiesButton").addEventListener("click", showProperties, false);
+
+ return fillUsersAsync();
+ }
+ });
+
+ function fillUsersAsync() {
+ nextUserNumber = 1;
+ User.findAllAsync().then(function (users) {
+ return addNextUserAsync(0);
+
+ function addNextUserAsync(i) {
+ if (i < users.length) {
+ var user = users[i];
+ return user.getPropertyAsync(KnownUserProperties.displayName).then(function (displayName) {
+ // Choose a generic name if we do not have access to the actual name.
+ if (displayName == "") {
+ displayName = "User #" + nextUserNumber;
+ ++nextUserNumber;
+ }
+
+ var newOption = document.createElement("option");
+ newOption.text = displayName;
+ newOption.value = user.nonRoamableId;
+ newOption.selected = false;
+ userList.add(newOption);
+
+ return addNextUser(i + 1);
+ });
+ }
+ }
+ });
+ }
+
+ function showProperties() {
+ if (userList.selectedIndex >= 0) {
+ resultsText.innerText = "";
+ profileImage.src = "";
+ WinJS.log && WinJS.log("", "sample", "status");
+
+ var userId = userList[userList.selectedIndex].value;
+ try {
+ var user = User.getFromId(userId);
+ } catch (ex) {
+ WinJS.log && WinJS.log(ex.message, "sample", "error");
+ return;
+ }
+
+ // Build a list of all the properties we want.
+ var desiredProperties = [
+ KnownUserProperties.firstName,
+ KnownUserProperties.lastName,
+ KnownUserProperties.providerName,
+ KnownUserProperties.accountName,
+ KnownUserProperties.guestHost,
+ KnownUserProperties.principalName,
+ KnownUserProperties.domainName,
+ KnownUserProperties.sessionInitiationProtocolUri
+ ];
+
+ // Issue a bulk query for all of the properties above.
+ // NOTE: Bulk queries do not work from JS right now.
+ // user.getPropertiesAsync(desiredProperties).then(function (values) {
+ simulateGetPropertiesAsync(user, desiredProperties).then(function (values) {
+ // Generate the results.
+ var result = "NonRoamableId: " + user.nonRoamableId + "\n";
+ result += "Type: " + userTypeNames[user.type] + "\n";
+ result += "AuthenticationStatus: " + authenticationStatusNames[user.authenticationStatus] + "\n";
+ desiredProperties.forEach(function (propertyName) {
+ result += propertyName + ": "+ values[propertyName] + "\n";
+ });
+
+ resultsText.innerText = result;
+ }).then(function () {
+ return user.getPictureAsync(UserPictureSize.size64x64);
+ }).then(function (streamReference) {
+ return streamReference && streamReference.openReadAsync();
+ }).then(function (stream) {
+ if (stream) {
+ profileImage.src = URL.createObjectURL(stream, { oneTimeOnly: true });
+ // Close the stream once the image is loaded.
+ profileImage.onload = function () { stream.close(); };
+ }
+ });
+ }
+ }
+
+ // Bulk queries do not work from JS right now, so we simulate it by
+ // issuing a series of single-property queries.
+ function simulateGetPropertiesAsync(user, desiredProperties) {
+ var values = {};
+ return addNextPropertyAsync(0);
+
+ function addNextPropertyAsync(i) {
+ if (i < desiredProperties.length) {
+ var propertyName = desiredProperties[i];
+ return user.getPropertyAsync(propertyName).then(function (result) {
+ values[propertyName] = result;
+ return addNextPropertyAsync(i + 1);
+ });
+ } else {
+ return values;
+ }
+ }
+ }
+
+})();
diff --git a/Samples/UserInfo/js/js/scenario2-watchUsers.js b/Samples/UserInfo/js/js/scenario2-watchUsers.js
new file mode 100644
index 00000000..0e01e27d
--- /dev/null
+++ b/Samples/UserInfo/js/js/scenario2-watchUsers.js
@@ -0,0 +1,136 @@
+//// Copyright (c) Microsoft Corporation. All rights reserved
+
+(function () {
+ "use strict";
+
+ var System = Windows.System;
+ var User = System.User;
+ var KnownUserProperties = System.KnownUserProperties;
+
+ var startButton;
+ var stopButton;
+ var userList;
+
+ var nextUserNumber = 1;
+ var userWatcher;
+
+ var page = WinJS.UI.Pages.define("/html/scenario2-watchUsers.html", {
+ ready: function (element, options) {
+ startButton = document.getElementById("startButton");
+ stopButton = document.getElementById("stopButton");
+ userList = document.getElementById("userList");
+
+ startButton.addEventListener("click", startWatching, false);
+ stopButton.addEventListener("click", stopWatching, false);
+ },
+ unload: stopWatching
+ });
+
+ function startWatching() {
+ WinJS.log && WinJS.log("", "sample", "status");
+
+ nextUserNumber = 1;
+ userList.innerHTML = ""; // remove all children
+
+ userWatcher = User.createWatcher();
+ userWatcher.addEventListener("added", onUserAdded);
+ userWatcher.addEventListener("updated", onUserUpdated);
+ userWatcher.addEventListener("removed", onUserRemoved);
+ userWatcher.addEventListener("enumerationcompleted", onEnumerationCompleted);
+ userWatcher.addEventListener("stopped", onWatcherStopped);
+ userWatcher.start();
+ startButton.disabled = true;
+ stopButton.disabled = false;
+ }
+
+ function stopWatching() {
+ if (userWatcher) {
+ userWatcher.removeEventListener("added", onUserAdded);
+ userWatcher.removeEventListener("updated", onUserUpdated);
+ userWatcher.removeEventListener("removed", onUserRemoved);
+ userWatcher.removeEventListener("enumerationCompleted", onEnumerationCompleted);
+ userWatcher.removeEventListener("stopped", onWatcherStopped);
+ userWatcher.stop();
+ userWatcher = null;
+ userList.innerHTML = ""; // remove all children
+ startButton.disabled = false;
+ stopButton.disabled = true;
+ }
+ }
+
+ function findOptionByUserId(userId) {
+ // make it safe to put inside "..."
+ var sanitized = userId.replace("\\", "\\\\").replace("'", "\\'");
+ return userList.querySelector("option[value='" + sanitized + "']");
+ }
+
+ function getDisplayNameOrGenericNameAsync(user) {
+ return user.getPropertyAsync(KnownUserProperties.displayName).then(function (displayName) {
+ // Choose a generic name if we do not have access to the actual name.
+ if (displayName == "") {
+ displayName = "User #" + nextUserNumber;
+ ++nextUserNumber;
+ }
+ return displayName;
+ });
+ }
+
+ function onUserAdded(e) {
+ var user = e.user;
+
+ // Create the user with "..." as the temporary display name.
+ // Add it right away, because it might get removed while the
+ // getDisplayNameOrGenericNameAsync is running.
+
+ var newOption = document.createElement("option");
+ newOption.text = "\u2026";
+ newOption.value = user.nonRoamableId;
+ newOption.selected = false;
+ userList.add(newOption);
+
+ // Uncomment this line, and the behavior in the TODO changes!
+ // Instead of setting only the first character, it sets only the first word.
+ //newOption.text = "Bogga";
+
+ // Try to get the display name.
+ getDisplayNameOrGenericNameAsync(user).then(function (displayName) {
+ // TODO: Figure out why only the first character gets set.
+ newOption.text = displayName;
+ });
+ }
+
+ function onUserUpdated(e) {
+ var user = e.user;
+
+ // Look for the user in our collection and update the display name.
+ var option = findOptionByUserId(user.nonRoamableId);
+
+ // Try to update the display name.
+ getDisplayNameOrGenericNameAsync(user).then(function (displayName) {
+ // TODO: Figure out why only the first character gets set.
+ option.text = displayName;
+ });
+ }
+
+ function onUserRemoved(e) {
+ var user = e.user;
+
+ // Look for the user in our collection and remove it.
+ var option = findOptionByUserId(user.nonRoamableId);
+
+ if (option) {
+ userList.remove(option);
+ }
+ }
+
+ function onEnumerationCompleted()
+ {
+ WinJS.log && WinJS.log("Enumeration complete. Watching for changes...", "sample", "status");
+ }
+
+ function onWatcherStopped()
+ {
+ stopWatching();
+ }
+
+})();
diff --git a/Samples/AccountPictureName/js/sample-utils/placeholder.txt b/Samples/UserInfo/js/sample-utils/placeholder.txt
similarity index 100%
rename from Samples/AccountPictureName/js/sample-utils/placeholder.txt
rename to Samples/UserInfo/js/sample-utils/placeholder.txt
diff --git a/Samples/AccountPictureName/shared/GetUserFirstAndLastName.xaml b/Samples/UserInfo/shared/Scenario1_FindUsers.xaml
similarity index 61%
rename from Samples/AccountPictureName/shared/GetUserFirstAndLastName.xaml
rename to Samples/UserInfo/shared/Scenario1_FindUsers.xaml
index 37cc636f..4a76dacf 100644
--- a/Samples/AccountPictureName/shared/GetUserFirstAndLastName.xaml
+++ b/Samples/UserInfo/shared/Scenario1_FindUsers.xaml
@@ -11,7 +11,7 @@
//*********************************************************
-->
-
-
+
- Get the first and last name for the current user. This is only available for Microsoft Accounts. An empty string will be returned if not available.
+ Find users and display user properties
+
+
-
-
-
-
+
+
+
+
-
-
-
diff --git a/Samples/UserInfo/shared/Scenario2_WatchUsers.xaml b/Samples/UserInfo/shared/Scenario2_WatchUsers.xaml
new file mode 100644
index 00000000..eb2a0acb
--- /dev/null
+++ b/Samples/UserInfo/shared/Scenario2_WatchUsers.xaml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+ Maintain a list of users with a UserWatcher
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/UserInteractionMode/README.md b/Samples/UserInteractionMode/README.md
index b3fb5545..f5588d0d 100644
--- a/Samples/UserInteractionMode/README.md
+++ b/Samples/UserInteractionMode/README.md
@@ -1,6 +1,7 @@
+
# User interaction mode sample
This sample shows how to detect and respond to the user interaction mode.
@@ -32,9 +33,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/UserSelection/README.md b/Samples/UserSelection/README.md
index 7e8d0702..dfa7c223 100644
--- a/Samples/UserSelection/README.md
+++ b/Samples/UserSelection/README.md
@@ -1,5 +1,8 @@
-Unselectable content areas with -ms-user-select CSS attribute sample
-====================================================================
+
+
+# Disabling selection sample
This sample demonstrates how your app can make content areas in your Windows Store app using JavaScript unselectable using the [**-ms-user-select**](http://msdn.microsoft.com/library/windows/apps/hh779846) CSS attribute.
@@ -43,9 +46,10 @@ Windows 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/UssdProtcol/README.md b/Samples/UssdProtcol/README.md
index b9dfc59a..0f09b850 100644
--- a/Samples/UssdProtcol/README.md
+++ b/Samples/UssdProtcol/README.md
@@ -1,4 +1,8 @@
-# USSD Protocol Sample
+
+
+# USSD protocol sample
This sample demonstrates the usage of the USSD protocol with GSM-capable mobile broadband adapters.
USSD is typically used for account management of a mobile broadband subscription.
@@ -28,8 +32,10 @@ Hence requires restricted capability to be defined in package manifest.
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/VideoPlayback/README.md b/Samples/VideoPlayback/README.md
index 5c2ad16b..d8980823 100644
--- a/Samples/VideoPlayback/README.md
+++ b/Samples/VideoPlayback/README.md
@@ -2,7 +2,7 @@
category: AudioVideoAndCamera
--->
-# Video Playback Sample
+# Video playback sample
This sample demonstrates how to create apps that take advantage of many media platform features.
@@ -33,9 +33,10 @@ Windows Phone 10
Build the sample
----------------
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C\# or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
Run the sample
--------------
diff --git a/Samples/VoIP/README.md b/Samples/VoIP/README.md
index 54c4edf3..9f749dee 100644
--- a/Samples/VoIP/README.md
+++ b/Samples/VoIP/README.md
@@ -1,9 +1,8 @@
-VoIP Sample
-=========================
+# Voice over IP (VoIP) sample
This sample demonstrates the use of the Windows.ApplicationModel.Calls namespace needed for Voice-Over-IP.
@@ -23,9 +22,10 @@ This Sample utilizes Windows Mobile Extensions for UWP and will only work on mob
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WRLInProcessWinRTComponent/README.md b/Samples/WRLInProcessWinRTComponent/README.md
index 334f7f10..24554732 100644
--- a/Samples/WRLInProcessWinRTComponent/README.md
+++ b/Samples/WRLInProcessWinRTComponent/README.md
@@ -2,9 +2,9 @@
category: PlatformArchitecture
--->
-# C++ DLL component authoring using WRL with proxy\stub generation sample
+# In-process component authoring sample
-Create an inprocess component in C++ using WRL that is consumed in C++, JS, and C#.
+Create an in-process component in C++ using WRL that is consumed in C++, JS, and C#.
**Note** The Windows universal samples require Visual Studio 2015 to build and Windows 10 to execute.
@@ -22,9 +22,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WRLOutOfProcessWinRTComponent/README.md b/Samples/WRLOutOfProcessWinRTComponent/README.md
index 29abb7b3..6a392152 100644
--- a/Samples/WRLOutOfProcessWinRTComponent/README.md
+++ b/Samples/WRLOutOfProcessWinRTComponent/README.md
@@ -2,7 +2,7 @@
category: PlatformArchitecture
--->
-# C++ DLL component authoring using WRL with proxy\stub generation sample
+# Out-of-process component authoring
This sample shows how to create an out-of-process component in C++ using WRL that is consumed in C++, JS, and C#.
@@ -22,9 +22,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WebAccountManagement/README.md b/Samples/WebAccountManagement/README.md
index 72fe6c83..cc906919 100644
--- a/Samples/WebAccountManagement/README.md
+++ b/Samples/WebAccountManagement/README.md
@@ -1,7 +1,8 @@
-# Web Account Management sample
+
+# Web account management sample
This sample demonstrates the way to get Tokens to access different accounts
@@ -40,9 +41,10 @@ You must then update the Azure AD ClientID in the individual scenarios, as well
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WebAuthenticationBroker/README.md b/Samples/WebAuthenticationBroker/README.md
index 3ed6f262..44a9aa63 100644
--- a/Samples/WebAuthenticationBroker/README.md
+++ b/Samples/WebAuthenticationBroker/README.md
@@ -1,4 +1,10 @@
-This sample shows how you can use the WebAuthenticationBroker class to connect to OAuth providers such as Facebook, Flickr, Google, and Twitter.
+
+
+# WebAuthenticationBroker sample
+
+This sample shows how you can use the WebAuthenticationBroker class to connect to OAuth providers such as Facebook, Flickr, Google, and Twitter.
**Note** This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 10 and Windows Phone 10.
@@ -8,8 +14,8 @@ Shows using the OAuth protocol for authentication and authorization. You can cho
- Flickr [C#, JS]
- Google [C++, C#, JS]
-Related Topics
---------------
+## Related Topics
+
[Web Authentication Broker](http://msdn.microsoft.com/library/windows/apps/)
[Quickstart: Connecting using XML HTTP Request](http://msdn.microsoft.com/library/windows/apps/hh770550)
[Setting up single sign-on using the web authentication broker](http://msdn.microsoft.com/library/windows/apps/hh465283)
@@ -20,8 +26,8 @@ Related Topics
[WebAuthenticationBroker](http://msdn.microsoft.com/library/windows/apps/br227025)
[Windows.Security.Authentication.Web](http://msdn.microsoft.com/library/windows/apps/br227044)
-Obtaining Client Ids For Use with OAuth APIs
---------------------------------------------
+## Obtaining Client Ids For Use with OAuth APIs
+
To configure Google OAuth connections (Google Apps and Google) you will need to register Auth0 with Google on the API Console.
- Log in to [API Console](https://console.developers.google.com/)
- Complete information about your instance of Auth0.
@@ -39,27 +45,25 @@ To configure Twitter OAuth connections you will have to register an application
To configure Flickr OAuth connections you will have to register an application with Flickr
- [Flickr API Keys Documentation](https://www.flickr.com/services/api/misc.api_keys.html)
-Operating system requirements
------------------------------
+## Operating system requirements
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++ or C\#. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
-**Deploying the sample**
+## Deploying the sample
1. Select **Build** \> **Deploy Solution**.
-**Deploying and running the sample**
+## Deploying and running the sample
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select**Debug** \> **Start Without Debugging**.
diff --git a/Samples/WebSocket/README.md b/Samples/WebSocket/README.md
index e67aa61a..42620451 100644
--- a/Samples/WebSocket/README.md
+++ b/Samples/WebSocket/README.md
@@ -1,6 +1,7 @@
-
+
# WebSocket sample
This sample shows you how to send and receive date using the WebSocket classes in the [**Windows.Networking.Sockets**](http://msdn.microsoft.com/library/windows/apps/br226960) namespace in your Universal Windows Platform (UWP) app. The sample covers basic features that include making a WebSocket connection, sending and receiving data, and closing the connection. The sample also shows recommended ways of handling both trusted (hard coded) URI inputs and unvalidated (user-entered) URI inputs.
@@ -63,10 +64,10 @@ This sample requires that network capabilities be set in the *Package.appxmanife
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WebView/README.md b/Samples/WebView/README.md
index aca4d020..8731fde7 100644
--- a/Samples/WebView/README.md
+++ b/Samples/WebView/README.md
@@ -1,31 +1,31 @@
-HTML WebView control sample
-===========================
+
+
+# HTML WebView control sample
This sample demonstrates how to use [**WebView**](http://msdn.microsoft.com/library/windows/apps/br227702).
It shows how to use the [**WebView**](http://msdn.microsoft.com/library/windows/apps/br227702) to navigate to a URL, display a string of HTML, track state, display the contents of a stream, invoke a script, and how to support the share contract.
-Related topics
---------------
+## Related topics
[**WebView**](http://msdn.microsoft.com/library/windows/apps/br227702)
-Operating system requirements
------------------------------
+## Operating system requirements
Client
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/WebView/js/StreamUriResolverCS/StreamUriResolverCS.csproj b/Samples/WebView/js/StreamUriResolverCS/StreamUriResolverCS.csproj
index 30d78236..d94ea41b 100644
--- a/Samples/WebView/js/StreamUriResolverCS/StreamUriResolverCS.csproj
+++ b/Samples/WebView/js/StreamUriResolverCS/StreamUriResolverCS.csproj
@@ -120,16 +120,6 @@
-
-
- ..\js\packages\System.Numerics.Vectors.4.0.0\lib\win8\System.Numerics.Vectors.dll
- True
-
-
- ..\js\packages\System.Numerics.Vectors.4.0.0\lib\win8\System.Numerics.Vectors.WindowsRuntime.dll
- True
-
-
diff --git a/Samples/WebWorkers/README.md b/Samples/WebWorkers/README.md
index c621d901..5fdff194 100644
--- a/Samples/WebWorkers/README.md
+++ b/Samples/WebWorkers/README.md
@@ -1,5 +1,8 @@
-JavaScript Web Workers app multithreading sample
-================================================
+
+
+# JavaScript Web Workers app multithreading sample
This sample demonstrates how to use multithreading with Web Workers in your Windows Store app using JavaScript.
@@ -12,25 +15,20 @@ This sample covers the following scenarios:
- Supporting Channel Messaging. Channel Messaging is used to enable direct communication between Web Workers. In this specific scenario, the UI thread creates two workers and a set of ports through which the Web Workers can directly communicate. The UI thread then passes the string "Hello World" to the first Web Worker, which passes it on to the second Web Worker via the specified port, which then passes it back to the UI thread.
- Accessing the [**setTimeout**](http://msdn.microsoft.com/library/windows/apps/hh453406) and [**setInterval**](http://msdn.microsoft.com/library/windows/apps/hh453402) methods defined on a Web Worker. These methods can be used to throttle long running scripts or for other general timing purposes. Click the buttons to instruct the Worker to set a timeout or interval timer. At each callback of the timer, the Web Worker posts messages which are then displayed by the example.
-Related topics
---------------
-
-Operating system requirements
------------------------------
+## Operating system requirements
Client
Windows 10
-Build the sample
-----------------
+## Build the sample
-1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press F7 or use **Build** \> **Build Solution** to build the sample.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/WiFiDirect/README.md b/Samples/WiFiDirect/README.md
index d5648cf1..85029c94 100644
--- a/Samples/WiFiDirect/README.md
+++ b/Samples/WiFiDirect/README.md
@@ -1,6 +1,7 @@
+
# Wi-Fi Direct sample
This sample shows how to use the Wi-Fi Direct API to discover devices and connect to the them over Wi-Fi Direct.
@@ -36,10 +37,10 @@ Specifically, this sample shows how to:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WiFiDirectServices/README.md b/Samples/WiFiDirectServices/README.md
index b6e63e4a..56f983ac 100644
--- a/Samples/WiFiDirectServices/README.md
+++ b/Samples/WiFiDirectServices/README.md
@@ -1,7 +1,8 @@
-# Wi-Fi Direct Services sample
+
+# Wi-Fi Direct services sample
This sample shows how to use the Wi-Fi Direct services API to publish and discover services over Wi-Fi Direct.
@@ -38,10 +39,10 @@ Specifically, this sample shows how to:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WiFiScan/README.md b/Samples/WiFiScan/README.md
index fb9ce0f8..4bbddaeb 100644
--- a/Samples/WiFiScan/README.md
+++ b/Samples/WiFiScan/README.md
@@ -1,7 +1,9 @@
-# WiFiScan sample
+
+# Wi-Fi scanning sample
+
This sample demonstrates:
- Viewing cached list of available networks on each WiFi adapter on the system
@@ -19,10 +21,10 @@ This sample demonstrates:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the subdirectory for the desired language.
-3. Double-click the Visual Studio 2015 Solution (.sln) file.
-4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/WindowsAudioSession/README.md b/Samples/WindowsAudioSession/README.md
index bee5c945..cb4f58c3 100644
--- a/Samples/WindowsAudioSession/README.md
+++ b/Samples/WindowsAudioSession/README.md
@@ -1,9 +1,8 @@
-
-Windows Audio Session (WASAPI) sample
-=====================================
+# Windows audio session (WASAPI) sample
Demonstrates how to do various audio related tasks using the [Windows Audio Session API (WASAPI)](http://msdn.microsoft.com/library/windows/apps/dd371455).
@@ -18,8 +17,7 @@ Specifically, this sample covers:
For more information on adding audio to your Windows Store app, see [Quickstart: adding audio to an app](http://msdn.microsoft.com/library/windows/apps/hh452730).
-Related topics
---------------
+## Related topics
**Roadmaps**
@@ -41,18 +39,18 @@ Related topics
[Media Foundation](http://msdn.microsoft.com/library/windows/apps/ms694197)
-Operating system requirements
------------------------------
+## Operating system requirements
Client: Windows 10
Windows Phone 10
-Build the sample
-----------------
+## Build the sample
-To build this sample, open the solution (.sln) file in any version of Visual Studio, and then press **F7** or select **Build** \> **Build Solution** from the main menu.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
-Run the sample
---------------
+## Run the sample
To run this sample after building it, press F5 (run with debugging enabled) or Ctrl-F5 (run without debugging enabled) from Visual Studio 2013 for Windows 8.1 (any SKU). (Or select the corresponding options from the Debug menu.)
\ No newline at end of file
diff --git a/Samples/XamlAutoSuggestBox/README.md b/Samples/XamlAutoSuggestBox/README.md
index 67f15af6..0951428a 100644
--- a/Samples/XamlAutoSuggestBox/README.md
+++ b/Samples/XamlAutoSuggestBox/README.md
@@ -1,3 +1,7 @@
+
+
# AutoSuggestBox migration sample
This sample shows how to migrate your Windows 8.1 app to Windows 10 by replacing your SearchBox with an AutoSuggestBox. With the improvements in AutoSuggestBox, you will get the same end-user experience across all supported Windows 10 devices.
@@ -35,9 +39,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlBind/README.md b/Samples/XamlBind/README.md
index 3ca49d46..2b549c79 100644
--- a/Samples/XamlBind/README.md
+++ b/Samples/XamlBind/README.md
@@ -1,4 +1,8 @@
-# x:Bind Sample
+
+
+# x:Bind sample
This sample shows how to use x:Bind for data binding in XAML apps. x:Bind is a new compile time binding mechanism for XAML in windows 10, which is faster and provides more developer feedback in the form of compile errors and generated code that can be inspected.
@@ -32,9 +36,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlCloudFontIntegration/README.md b/Samples/XamlCloudFontIntegration/README.md
index ee70466b..d647c6aa 100644
--- a/Samples/XamlCloudFontIntegration/README.md
+++ b/Samples/XamlCloudFontIntegration/README.md
@@ -2,7 +2,7 @@
category: ControlsLayoutAndText
--->
-#XAML Integration of DirectWrite Downloadable Fonts sample
+# Downloadable fonts (XAML) sample
Demonstrates XAML integration of DirectWrite downloadable fonts, a feature added in Windows 10.
@@ -37,9 +37,10 @@ The downloadable font mechanism can be utilized just by formatting text elements
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlCommanding/README.md b/Samples/XamlCommanding/README.md
index 66032cfd..e79afc39 100644
--- a/Samples/XamlCommanding/README.md
+++ b/Samples/XamlCommanding/README.md
@@ -1,4 +1,8 @@
-# XAML Commanding
+
+
+# Commanding sample
This sample highlights the changes and new features to the CommandBar. On Windows 10, both the AppBar and the CommandBar are visible by default and can be either "closed" or "opened". While in the closed state, an app bar can provide either a "minimal" or "compact" hint or no hint at all. The AppBar/CommandBar transition to an opened state when the user taps the More button that appears as an ellipsis or the control is opened programmatically.
@@ -55,9 +59,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlContextMenu/README.md b/Samples/XamlContextMenu/README.md
index d0952463..72d15cd1 100644
--- a/Samples/XamlContextMenu/README.md
+++ b/Samples/XamlContextMenu/README.md
@@ -1,13 +1,17 @@
-# Context Menu sample
+
+
+# Context menu (XAML) sample
This sample shows how to create context menus experiences in UWP.
Specifically, this sample shows how to:
-- **Create desktop-style context menus :** using our new APIs, it is possible to control the placement as well as allow menus to draw outside your application's window
-- **Nested/cascading menus :** organize your commands with nested menus
-- **Support for desktop and mobile :** with best practices for keyboard, mouse, and touch
-- **Icons :** learn how to add support for icons
+- **Create desktop-style context menus:** using our new APIs, it is possible to control the placement as well as allow menus to draw outside your application's window
+- **Nested/cascading menus:** organize your commands with nested menus
+- **Support for desktop and mobile:** with best practices for keyboard, mouse, and touch
+- **Icons:** learn how to add support for icons
**Note** The Windows universal samples require Visual Studio 2015 to build and Windows 10 to execute.
@@ -34,9 +38,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlCustomMediaTransportControls/README.md b/Samples/XamlCustomMediaTransportControls/README.md
index 1aa244be..ce34e173 100644
--- a/Samples/XamlCustomMediaTransportControls/README.md
+++ b/Samples/XamlCustomMediaTransportControls/README.md
@@ -1,4 +1,8 @@
-# Media Transport Controls sample
+
+
+# Media transport controls sample
This sample shows how to create customized media transport controls for the Media Element in your XAML Windows App.
@@ -33,9 +37,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlDeferLoadStrategy/README.md b/Samples/XamlDeferLoadStrategy/README.md
index b5b2364d..7b148feb 100644
--- a/Samples/XamlDeferLoadStrategy/README.md
+++ b/Samples/XamlDeferLoadStrategy/README.md
@@ -1,3 +1,7 @@
+
+
# x:DeferLoadStrategy sample
This sample shows how to reduce your app's startup time by deferring the creation of elements defined in your markup until you really need them.
@@ -33,9 +37,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlDragAndDrop/README.md b/Samples/XamlDragAndDrop/README.md
new file mode 100644
index 00000000..abfb4ed3
--- /dev/null
+++ b/Samples/XamlDragAndDrop/README.md
@@ -0,0 +1,70 @@
+
+
+# Drag and drop sample
+
+This sample shows how to enable Drag and Drop in a XAML Application.
+
+Specifically, this sample shows how to:
+
+- **Enable Drag and Drop of ListView items** ListView's Drag and Drop allows dropping information in the ListView, dragging items from a ListView to other targets (any kind of UIElement) or reordering items within the ListView. This sample shows a sample implementation of a ListView using all this features to allow the user to create a list of items entirely with Drag and Drop.
+- **Customize the Drag and Drop UI** Both the source of a UIElement's Drag and Drop and the target of a Drag and Drop can customize the appearance of the Drag and Drop UI. This sample illustrates the different options for such customization.
+- **Start Drag and Drop programmatically** UIElement's StartDragAsync allows a finer control of a Drag and Drop operation such as the gesture which triggers it or its possible cancellation. This sample shows how to call StartDragAsync and how to cancel the resulting Drag and Drop operation.
+
+**Note** The Windows universal samples require Visual Studio 2015 to build and Windows 10 to execute.
+
+To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.com/fwlink/?LinkID=532421)
+
+To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
+
+## Related topics
+
+### Reference
+
+
+
+[ListViewBase.CanDragItems](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.listviewbase.candragitems.aspx)
+[ListViewBase.CanReorderItems](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.listviewbase.canreorderitems.aspx)
+[ListViewBase.DragItemsStarting](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.listviewbase.dragitemsstarting.aspx)
+[ListViewBase.DragItemsCompleted](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.listviewbase.dragitemscompleted.aspx)
+[DragItemsStartingEventArgs](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.dragitemsstartingeventargs.aspx)
+[UIElement.AllowDrop](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.allowdrop.aspx)
+[UIElement.StartDragAsync](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.startdragasync.aspx)
+[UIElement.DragStarting](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.dragstarting.aspx)
+[UIElement.DragEnter](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.dragenter.aspx)
+[UIElement.DragLeave](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.dragleave.aspx)
+[UIElement.Drop](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.drop.aspx)
+[DragStartingEventArgs](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.dragstartingeventargs.aspx)
+[DragEventArgs](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.drageventargs.aspx)
+[DragUI](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.dragui.aspx)
+[DragUIOverride](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.draguioverride.aspx)
+[DragOperationDeferral](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.dragoperationdeferral.aspx)
+
+
+## System requirements
+
+**Client:** Windows 10 Technical Preview
+
+**Server:** Windows 10 Technical Preview
+
+**Phone:** Windows 10 Technical Preview
+
+## Build the sample
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+## Run the sample
+
+The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
+
+### Deploying the sample
+
+- Select Build > Deploy Solution.
+
+### Deploying and running the sample
+
+- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
diff --git a/Samples/XamlDragAndDrop/cpp/Assets/dropcursor.png b/Samples/XamlDragAndDrop/cpp/Assets/dropcursor.png
new file mode 100644
index 00000000..98a14c32
Binary files /dev/null and b/Samples/XamlDragAndDrop/cpp/Assets/dropcursor.png differ
diff --git a/Samples/XamlDragAndDrop/cpp/Assets/symbols.txt b/Samples/XamlDragAndDrop/cpp/Assets/symbols.txt
new file mode 100644
index 00000000..0cbf7524
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Assets/symbols.txt
@@ -0,0 +1,9 @@
+🍕
+🍔
+🍞
+🍨
+🍟
+🍜
+🍰
+🍝
+🍣
\ No newline at end of file
diff --git a/Samples/XamlDragAndDrop/cpp/DesignTimeResources.xaml b/Samples/XamlDragAndDrop/cpp/DesignTimeResources.xaml
new file mode 100644
index 00000000..bcf7612b
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/DesignTimeResources.xaml
@@ -0,0 +1,6 @@
+
+
+
diff --git a/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.sln b/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.sln
new file mode 100644
index 00000000..fd812200
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.sln
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.23012.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DragAndDropSampleNative", "DragAndDropSampleNative.vcxproj", "{F710B9FD-4E6B-42D7-A99A-6D48888D48B0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|ARM.ActiveCfg = Debug|ARM
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|ARM.Build.0 = Debug|ARM
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|ARM.Deploy.0 = Debug|ARM
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|x64.ActiveCfg = Debug|x64
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|x64.Build.0 = Debug|x64
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|x64.Deploy.0 = Debug|x64
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|x86.ActiveCfg = Debug|Win32
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|x86.Build.0 = Debug|Win32
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Debug|x86.Deploy.0 = Debug|Win32
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|ARM.ActiveCfg = Release|ARM
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|ARM.Build.0 = Release|ARM
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|ARM.Deploy.0 = Release|ARM
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|x64.ActiveCfg = Release|x64
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|x64.Build.0 = Release|x64
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|x64.Deploy.0 = Release|x64
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|x86.ActiveCfg = Release|Win32
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|x86.Build.0 = Release|Win32
+ {F710B9FD-4E6B-42D7-A99A-6D48888D48B0}.Release|x86.Deploy.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.vcxproj b/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.vcxproj
new file mode 100644
index 00000000..823555f1
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.vcxproj
@@ -0,0 +1,237 @@
+
+
+
+ {f710b9fd-4e6b-42d7-a99a-6d48888d48b0}
+ SDKTemplate
+ en-US
+ 14.0
+ true
+ Windows Store
+ 10.0.10240.0
+ 10.0.10240.0
+ 10.0
+
+
+
+
+
+
+
+
+
+
+
+
+ Debug
+ ARM
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ ARM
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ Application
+ true
+ v140
+
+
+ Application
+ true
+ v140
+
+
+ Application
+ true
+ v140
+
+
+ Application
+ false
+ true
+ v140
+
+
+ Application
+ false
+ true
+ v140
+
+
+ Application
+ false
+ true
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VC_IncludePath);$(UniversalCRT_IncludePath);$(WindowsSDK_IncludePath);..\..\..\SharedContent\cpp
+
+
+
+ /bigobj %(AdditionalOptions)
+ 4453;28204
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ 4453;28204
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ 4453;28204
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ 4453;28204
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ 4453;28204
+
+
+
+
+ /bigobj %(AdditionalOptions)
+ 4453;28204
+
+
+
+
+
+ ..\..\..\SharedContent\xaml\App.xaml
+
+
+ ..\..\..\SharedContent\cpp\MainPage.xaml
+
+
+
+ Scenario1_ListView.xaml
+
+
+ Scenario2_DragUICustomization.xaml
+
+
+ Scenario3_StartDragAsync.xaml
+
+
+
+
+ Designer
+
+
+ Designer
+
+
+
+
+
+ Styles\Styles.xaml
+
+
+
+
+ Designer
+
+
+
+
+ ..\..\..\SharedContent\xaml\App.xaml
+
+
+ ..\..\..\SharedContent\cpp\MainPage.xaml
+
+
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+
+
+
+ Scenario1_ListView.xaml
+
+
+ Scenario2_DragUICustomization.xaml
+
+
+ Scenario3_StartDragAsync.xaml
+
+
+
+
+
+ Assets\microsoft-sdk.png
+
+
+ Assets\smalltile-sdk.png
+
+
+ Assets\splash-sdk.png
+
+
+ Assets\squaretile-sdk.png
+
+
+ Assets\storelogo-sdk.png
+
+
+ Assets\tile-sdk.png
+
+
+ Assets\windows-sdk.png
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.vcxproj.filters b/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.vcxproj.filters
new file mode 100644
index 00000000..9c3efd46
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/DragAndDropSampleNative.vcxproj.filters
@@ -0,0 +1,72 @@
+
+
+
+
+ 80bfd669-aa83-4537-9611-027cffe0d8af
+ bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png
+
+
+ {c6978fb6-bc64-498d-97c8-f5b53997e54e}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+ Assets
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/XamlDragAndDrop/cpp/Package.appxmanifest b/Samples/XamlDragAndDrop/cpp/Package.appxmanifest
new file mode 100644
index 00000000..d670856e
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Package.appxmanifest
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+ DragAndDropSampleNative CPP Sample
+ Microsoft Corporation
+ Assets\StoreLogo-sdk.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/AccountPictureName/cpp/GetUserDisplayName.xaml.h b/Samples/XamlDragAndDrop/cpp/SampleConfiguration.cpp
similarity index 54%
rename from Samples/AccountPictureName/cpp/GetUserDisplayName.xaml.h
rename to Samples/XamlDragAndDrop/cpp/SampleConfiguration.cpp
index 2830f0c0..59ac2236 100644
--- a/Samples/AccountPictureName/cpp/GetUserDisplayName.xaml.h
+++ b/Samples/XamlDragAndDrop/cpp/SampleConfiguration.cpp
@@ -9,21 +9,15 @@
//
//*********************************************************
-#pragma once
-
-#include "GetUserDisplayName.g.h"
+#include "pch.h"
#include "MainPage.xaml.h"
+#include "SampleConfiguration.h"
-namespace SDKTemplate
+using namespace SDKTemplate;
+
+Platform::Array^ MainPage::scenariosInner = ref new Platform::Array
{
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class GetUserDisplayName sealed
- {
- public:
- GetUserDisplayName();
-
- private:
- MainPage^ rootPage;
- void GetDisplayNameButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- };
-}
+ { "ListView Drag and Drop and Reorder", "SDKTemplate.Scenario1_ListView" },
+ { "Drag UI Customization", "SDKTemplate.Scenario2_DragUICustomization" },
+ { "StartDragAsync", "SDKTemplate.Scenario3_StartDragAsync" }
+};
diff --git a/Samples/AccountPictureName/cpp/SampleConfiguration.h b/Samples/XamlDragAndDrop/cpp/SampleConfiguration.h
similarity index 54%
rename from Samples/AccountPictureName/cpp/SampleConfiguration.h
rename to Samples/XamlDragAndDrop/cpp/SampleConfiguration.h
index 9a7651fd..47ba382d 100644
--- a/Samples/AccountPictureName/cpp/SampleConfiguration.h
+++ b/Samples/XamlDragAndDrop/cpp/SampleConfiguration.h
@@ -1,4 +1,13 @@
+//*********************************************************
+//
// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
#pragma once
#include "pch.h"
@@ -14,7 +23,7 @@ namespace SDKTemplate
{
Platform::String^ get()
{
- return "Account picture name C++ sample";
+ return "XAML Drag and Drop";
}
}
@@ -26,18 +35,6 @@ namespace SDKTemplate
}
}
- void NavigateToScenario(Platform::String^ scenario)
- {
- for (unsigned index = 0; index < scenarios->Length; index++)
- {
- if (scenarios[index].ClassName == scenario)
- {
- ScenarioControl->SelectedIndex = index;
- break;
- }
- }
- }
-
private:
static Platform::Array^ scenariosInner;
};
@@ -47,10 +44,4 @@ namespace SDKTemplate
Platform::String^ Title;
Platform::String^ ClassName;
};
-
- partial ref class App sealed
- {
- protected:
- virtual void OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs^ args) override;
- };
}
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml b/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml
new file mode 100644
index 00000000..fbef6188
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml.cpp b/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml.cpp
new file mode 100644
index 00000000..e061fcab
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml.cpp
@@ -0,0 +1,203 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+#include "pch.h"
+#include "Scenario1_ListView.xaml.h"
+
+using namespace concurrency;
+using namespace SDKTemplate;
+using namespace Platform;
+using namespace Platform::Collections;
+using namespace Windows::Foundation;
+using namespace Windows::Foundation::Collections;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Controls;
+using namespace Windows::UI::Xaml::Controls::Primitives;
+using namespace Windows::UI::Xaml::Data;
+using namespace Windows::UI::Xaml::Input;
+using namespace Windows::UI::Xaml::Media;
+using namespace Windows::UI::Xaml::Navigation;
+using namespace Windows::ApplicationModel::DataTransfer;
+
+Scenario1_ListView::Scenario1_ListView() : rootPage(MainPage::Current)
+{
+ InitializeComponent();
+
+ _reference = GetSampleData();
+ _selection = ref new Vector();
+ SourceListView->ItemsSource = _reference;
+ TargetListView->ItemsSource = _selection;
+}
+
+Vector^ Scenario1_ListView::GetSampleData()
+{
+ return ref new Vector(
+ {
+ ref new String(L"My Research Paper"),
+ ref new String(L"Electricity Bill"),
+ ref new String(L"My To-do list"),
+ ref new String(L"TV sales receipt"),
+ ref new String(L"Water Bill"),
+ ref new String(L"Grocery List"),
+ ref new String(L"Superbowl schedule"),
+ ref new String(L"World Cup E-ticket")
+ });
+}
+
+///
+/// DragItemsStarting is called when the Drag and Drop operation starts
+/// We take advantage of it to set the content of the DataPackage
+/// as well as indicate which operations are supported
+///
+///
+///
+void Scenario1_ListView::SourceListView_DragItemsStarting(Platform::Object^ sender, Windows::UI::Xaml::Controls::DragItemsStartingEventArgs^ e)
+{
+ // Prepare a string with one dragged item per line
+ String^ items = nullptr;
+ unsigned int n = e->Items->Size;
+ for (unsigned int i = 0; i < n; i++)
+ {
+ if (items != nullptr) items += ref new String(L"\n");
+ items += dynamic_cast(e->Items->GetAt(i));
+ }
+ // Set the content of the DataPackage
+ e->Data->SetText(items);
+ // As we want our Reference list to say intact, we only allow Copy
+ e->Data->RequestedOperation = DataPackageOperation::Copy;
+}
+
+///
+/// DragOver is called when the dragged pointer moves over a UIElement with AllowDrop=True
+/// We need to return an AcceptedOperation != None in either DragOver or DragEnter
+///
+///
+///
+void Scenario1_ListView::TargetListView_DragOver(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ // Our list only accepts text
+ e->AcceptedOperation = (e->DataView->Contains(StandardDataFormats::Text)) ? DataPackageOperation::Copy : DataPackageOperation::None;
+}
+
+///
+/// We need to return the effective operation from Drop
+/// This is not important for our source ListView, but it might be if the user
+/// drags text from another source
+///
+///
+///
+void Scenario1_ListView::TargetListView_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ // This test is in theory not needed as we returned DataPackageOperation.None if
+ // the DataPackage did not contained text. However, it is always better if each
+ // method is robust by itself
+ if (e->DataView->Contains(StandardDataFormats::Text))
+ {
+ // We need to take a Deferral as we won't be able to confirm the end
+ // of the operation synchronously
+ auto def = e->GetDeferral();
+ create_task(e->DataView->GetTextAsync()).then([def, this, e](String^ s)
+ {
+ // Parse the string to add items corresponding to each line
+ auto wsText = s->Data();
+ while (wsText) {
+ auto wsNext = wcschr(wsText, L'\n');
+ if (wsNext == nullptr)
+ {
+ // No more separator
+ _selection->Append(ref new String(wsText));
+ wsText = wsNext;
+ }
+ else
+ {
+ _selection->Append(ref new String(wsText, wsNext - wsText));
+ wsText = wsNext + 1;
+ }
+
+ }
+ e->AcceptedOperation = DataPackageOperation::Copy;
+ def->Complete();
+ });
+ }
+}
+
+///
+/// DragtemsStarting is called for D&D and reorder as the framework does not
+/// know wherer the user will drop the items. Reorder means that the target
+/// and the source ListView are the same.
+///
+///
+///
+void Scenario1_ListView::TargetListView_DragItemsStarting(Platform::Object^ sender, Windows::UI::Xaml::Controls::DragItemsStartingEventArgs^ e)
+{
+ // The ListView is declared with selection mode set to Single.
+ // But we want the code to be robust
+ if (e->Items->Size == 1)
+ {
+ e->Data->SetText(dynamic_cast(e->Items->GetAt(0)));
+ // Reorder or move to trash are always a move
+ e->Data->RequestedOperation = DataPackageOperation::Move;
+ _deletedItem = nullptr;
+ }
+}
+
+///
+/// Called at the end of the operation, whether it was a reorder or move to trash
+///
+///
+///
+void Scenario1_ListView::TargetListView_DragItemsCompleted(Windows::UI::Xaml::Controls::ListViewBase^ sender, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs^ args)
+{
+ // args.DropResult is always Move and therefore we have to rely on _deletedItem to distinguish
+ // between reorder and move to trash
+ // Another solution would be to listen for events in the ObservableCollection
+ unsigned index;
+ if ((_deletedItem != nullptr) && _selection->IndexOf(_deletedItem, &index))
+ {
+ _selection->RemoveAt(index);
+ _deletedItem = nullptr;
+ }
+}
+
+///
+/// Entering the Trash icon
+///
+///
+///
+void Scenario1_ListView::TargetTextBlock_DragEnter(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ // Trash only accepts text
+ e->AcceptedOperation = (e->DataView->Contains(StandardDataFormats::Text) ? DataPackageOperation::Move : DataPackageOperation::None);
+ // We don't want to show the Move icon
+ e->DragUIOverride->IsGlyphVisible = false;
+ e->DragUIOverride->Caption = ref new String(L"Drop item here to remove it from selection");
+}
+
+///
+/// Drop on the Trash
+///
+///
+///
+void Scenario1_ListView::TargetTextBlock_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ if (e->DataView->Contains(StandardDataFormats::Text))
+ {
+ // We need to take the deferral as the source will read _deletedItem which
+ // we cannot set synchronously
+ auto def = e->GetDeferral();
+ create_task(e->DataView->GetTextAsync()).then([this, e, def](String^ s)
+ {
+ _deletedItem = s;
+ e->AcceptedOperation = DataPackageOperation::Move;
+ def->Complete();
+ });
+ }
+}
+
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml.h b/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml.h
new file mode 100644
index 00000000..ee5c2f13
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario1_ListView.xaml.h
@@ -0,0 +1,43 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#pragma once
+
+#include "Scenario1_ListView.g.h"
+#include "MainPage.xaml.h"
+
+namespace SDKTemplate
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ [Windows::Foundation::Metadata::WebHostHidden]
+ public ref class Scenario1_ListView sealed
+ {
+ public:
+ Scenario1_ListView();
+ private:
+ MainPage^ rootPage;
+
+ Platform::Collections::Vector^ GetSampleData();
+ Platform::Collections::Vector^ _reference;
+ Platform::Collections::Vector^ _selection;
+ Platform::String^ _deletedItem;
+
+ void SourceListView_DragItemsStarting(Platform::Object^ sender, Windows::UI::Xaml::Controls::DragItemsStartingEventArgs^ e);
+ void TargetListView_DragOver(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ void TargetListView_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ void TargetListView_DragItemsStarting(Platform::Object^ sender, Windows::UI::Xaml::Controls::DragItemsStartingEventArgs^ e);
+ void TargetListView_DragItemsCompleted(Windows::UI::Xaml::Controls::ListViewBase^ sender, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs^ args);
+ void TargetTextBlock_DragEnter(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ void TargetTextBlock_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ };
+}
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml b/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml
new file mode 100644
index 00000000..2b439f74
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml.cpp b/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml.cpp
new file mode 100644
index 00000000..dd2da4b2
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml.cpp
@@ -0,0 +1,147 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#include "pch.h"
+#include "Scenario2_DragUICustomization.xaml.h"
+
+using namespace SDKTemplate;
+using namespace concurrency;
+using namespace Platform;
+using namespace Windows::Foundation;
+using namespace Windows::Foundation::Collections;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Controls;
+using namespace Windows::UI::Xaml::Controls::Primitives;
+using namespace Windows::UI::Xaml::Data;
+using namespace Windows::UI::Xaml::Input;
+using namespace Windows::UI::Xaml::Media;
+using namespace Windows::UI::Xaml::Media::Imaging;
+using namespace Windows::UI::Xaml::Navigation;
+using namespace Windows::Graphics::Imaging;
+using namespace Windows::Storage::Streams;
+using namespace Windows::ApplicationModel::DataTransfer;
+
+
+Scenario2_DragUICustomization::Scenario2_DragUICustomization()
+ : rootPage(MainPage::Current),
+ _insideName(ref new String(L"Inside")),
+ _outsideName(ref new String(L"Outside")),
+ _dropHere(ref new String(L"Drop here to insert text"))
+{
+ InitializeComponent();
+}
+
+
+bool Scenario2_DragUICustomization::IsChecked(Windows::UI::Xaml::Controls::Primitives::ToggleButton^ button)
+{
+ return (button->IsChecked != nullptr) && button->IsChecked->Value;
+}
+
+///
+/// Start of the Drag and Drop operation: we set some content and change the DragUI
+/// depending on the selected options
+///
+///
+///
+void Scenario2_DragUICustomization::SourceGrid_DragStarting(Windows::UI::Xaml::UIElement^ sender, Windows::UI::Xaml::DragStartingEventArgs^ args)
+{
+ args->Data->SetText(SourceTextBox->Text);
+ if (IsChecked(DataPackageRB))
+ {
+ // Standard icon will be used as the DragUIContent
+ args->DragUI->SetContentFromDataPackage();
+ }
+ else if (IsChecked(CustomContentRB))
+ {
+ // Generate a bitmap with only the TextBox
+ // We need to take the deferral as the rendering won't be completed synchronously
+ auto deferral = args->GetDeferral();
+ auto rtb = ref new RenderTargetBitmap();
+ create_task(rtb->RenderAsync(SourceTextBox)).then([rtb]()
+ {
+ return rtb->GetPixelsAsync();
+ }).then([rtb, deferral, args](IBuffer^ buffer)
+ {
+ auto bitmap = SoftwareBitmap::CreateCopyFromBuffer(buffer,
+ BitmapPixelFormat::Bgra8,
+ rtb->PixelWidth,
+ rtb->PixelHeight,
+ BitmapAlphaMode::Premultiplied);
+ args->DragUI->SetContentFromSoftwareBitmap(bitmap);
+ deferral->Complete();
+ });
+ }
+ // else just show the dragged UIElement
+}
+
+///
+/// Entering the Target, we'll change its background and optionally change the DragUI as well
+///
+///
+///
+void Scenario2_DragUICustomization::TargetTextBox_DragEnter(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ /// Change the background of the target
+ VisualStateManager::GoToState(this, _insideName, true);
+ bool hasText = e->DataView->Contains(StandardDataFormats::Text);
+ e->AcceptedOperation = hasText ? DataPackageOperation::Copy : DataPackageOperation::None;
+ if (hasText)
+ {
+ e->DragUIOverride->Caption = _dropHere;
+ // Now customize the content
+ if (IsChecked(HideRB))
+ {
+ e->DragUIOverride->IsGlyphVisible = false;
+ e->DragUIOverride->IsContentVisible = false;
+ }
+ else if (IsChecked(CustomRB))
+ {
+ auto bitmap = ref new BitmapImage(ref new Uri(ref new String(L"ms-appx:///Assets/dropcursor.png")));
+ // Anchor will define how to position the image relative to the pointer
+ Point anchor{ 0,52 }; // lower left corner of the image
+ e->DragUIOverride->SetContentFromBitmapImage(bitmap, anchor);
+ e->DragUIOverride->IsGlyphVisible = false;
+ e->DragUIOverride->IsCaptionVisible = false;
+ }
+ // else keep the DragUI Content set by the source
+ }
+}
+
+///
+/// DragLeave: Restore previous background
+///
+///
+///
+void Scenario2_DragUICustomization::TargetTextBox_DragLeave(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ VisualStateManager::GoToState(this, _outsideName, true);
+}
+
+///
+/// Drop: restore the background and append the dragged text
+///
+///
+///
+void Scenario2_DragUICustomization::TargetTextBox_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ VisualStateManager::GoToState(this, _outsideName, true);
+ bool hasText = e->DataView->Contains(StandardDataFormats::Text);
+ e->AcceptedOperation = hasText ? DataPackageOperation::Copy : DataPackageOperation::None;
+ if (hasText)
+ {
+ // if the result of the drop is not too important (and a text copy should have no impact on source)
+ // we don't need to take the deferral and this will complete the operation faster
+ create_task(e->DataView->GetTextAsync()).then([this](String^ text)
+ {
+ TargetTextBox->Text += text;
+ });
+ }
+}
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml.h b/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml.h
new file mode 100644
index 00000000..b8c822b2
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario2_DragUICustomization.xaml.h
@@ -0,0 +1,40 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#pragma once
+
+#include "Scenario2_DragUICustomization.g.h"
+#include "MainPage.xaml.h"
+
+namespace SDKTemplate
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ [Windows::Foundation::Metadata::WebHostHidden]
+ public ref class Scenario2_DragUICustomization sealed
+ {
+ public:
+ Scenario2_DragUICustomization();
+ private:
+ MainPage^ rootPage;
+ Platform::String^ _insideName;
+ Platform::String^ _outsideName;
+ Platform::String^ _dropHere;
+ bool IsChecked(Windows::UI::Xaml::Controls::Primitives::ToggleButton^ button);
+
+ void SourceGrid_DragStarting(Windows::UI::Xaml::UIElement^ sender, Windows::UI::Xaml::DragStartingEventArgs^ args);
+ void TargetTextBox_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ void TargetTextBox_DragEnter(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ void TargetTextBox_DragLeave(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+
+ };
+}
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml b/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml
new file mode 100644
index 00000000..f9756cc1
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml.cpp b/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml.cpp
new file mode 100644
index 00000000..6f96c89a
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml.cpp
@@ -0,0 +1,199 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#include "pch.h"
+#include "Scenario3_StartDragAsync.xaml.h"
+
+using namespace SDKTemplate;
+using namespace concurrency;
+using namespace Platform;
+using namespace Platform::Collections;
+using namespace Windows::Foundation;
+using namespace Windows::Foundation::Collections;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Controls;
+using namespace Windows::UI::Xaml::Controls::Primitives;
+using namespace Windows::UI::Xaml::Data;
+using namespace Windows::UI::Xaml::Input;
+using namespace Windows::UI::Xaml::Media;
+using namespace Windows::UI::Xaml::Media::Imaging;
+using namespace Windows::UI::Xaml::Navigation;
+using namespace Windows::Graphics::Imaging;
+using namespace Windows::Storage;
+using namespace Windows::Storage::Streams;
+using namespace Windows::ApplicationModel::DataTransfer;
+
+
+Scenario3_StartDragAsync::Scenario3_StartDragAsync() : rootPage(MainPage::Current)
+{
+ InitializeComponent();
+
+ // Initialize the symbols from the Text file
+ auto uri = ref new Uri(L"ms-appx:///Assets/Symbols.txt");
+ create_task(StorageFile::GetFileFromApplicationUriAsync(uri)).then([](StorageFile^ file)
+ {
+ return FileIO::ReadLinesAsync(file);
+ }).then([this](IVector^ lines)
+ {
+ _symbols = ref new Vector();
+ for (unsigned int i = 0; i < lines->Size;i++)
+ {
+ _symbols->Append(lines->GetAt(i));
+ }
+ DropGridView->ItemsSource = _symbols;
+
+ });
+}
+
+///
+/// Start button clicked: select a symbol, update the display
+/// and start the timer according to the difficulty level
+///
+///
+///
+void Scenario3_StartDragAsync::StartButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
+{
+ if (!_isActive)
+ {
+ int index = _rnd() % _symbols->Size;
+ _symbol = _symbols->GetAt(index);
+ SourceTextBlock->Text = _symbol;
+ ResultTextBlock->Text = nullptr;
+ _isActive = true;
+
+ if (_timer == nullptr)
+ {
+ _timer = ref new DispatcherTimer();
+ _timer->Tick += ref new EventHandler(this, &Scenario3_StartDragAsync::OnTick);
+ }
+ bool easy = (EasyRB->IsChecked != nullptr) && EasyRB->IsChecked->Value;
+ TimeSpan duration;
+ duration.Duration = easy ? 50000000 : 15000000;
+ _timer->Interval = duration;
+ _timer->Start();
+ StartButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
+ SourceTextBlock->Visibility = Windows::UI::Xaml::Visibility::Visible;
+ }
+}
+
+///
+/// End of the timer: player lost and we might have to cancel the drag operation
+///
+///
+///
+void Scenario3_StartDragAsync::OnTick(Platform::Object ^sender, Platform::Object ^args)
+{
+ _timer->Stop();
+ if (_dragOperation != nullptr)
+ {
+ // Cancel the drag operation: this is equivalent of the user pressing Escape
+ // or releasing the pointer on a non-target
+ // DropCompleted event would return DataPackageOperation.None as the result
+ _dragOperation->Cancel();
+ }
+ else
+ {
+ // We test _isActive just in case the timer expired when we were handling the drop
+ if (_isActive)
+ {
+ EndRound(false);
+ }
+ }
+}
+
+///
+/// If the pointer is moved and we are not yet dragging, start a drag operation
+/// using StartDragAsync, which will allow a later cancellation
+///
+///
+///
+void Scenario3_StartDragAsync::SourceTextBlock_PointerMoved(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
+{
+ if (_isActive
+ && e->Pointer->IsInContact
+ && (_dragOperation == nullptr))
+ {
+ _dragOperation = SourceTextBlock->StartDragAsync(e->GetCurrentPoint(SourceTextBlock));
+ _dragOperation->Completed = ref new AsyncOperationCompletedHandler(this, &Scenario3_StartDragAsync::DragCompleted);
+ }
+}
+
+///
+/// Update the user interface when the round is finished
+///
+///
+void Scenario3_StartDragAsync::EndRound(bool hasWon)
+{
+ _isActive = false;
+ ResultTextBlock->Text = ref new String(hasWon ? L"You win :-) !!" : L"You lose :-( !!");
+ StartButton->Visibility = Windows::UI::Xaml::Visibility::Visible;
+ SourceTextBlock->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
+}
+
+///
+/// Completion callback for the asynchronous call:
+/// it is called whether the drop succeeded, or the user released the pointer on a non-target
+/// or else we cancelled the operation from the timer's callback
+///
+///
+///
+void Scenario3_StartDragAsync::DragCompleted(IAsyncOperation^ asyncInfo, AsyncStatus asyncStatus)
+{
+ _dragOperation = nullptr;
+ if (_timer != nullptr) _timer->Stop();
+ EndRound((asyncStatus == AsyncStatus::Completed) && (asyncInfo->GetResults() == DataPackageOperation::Copy));
+}
+
+///
+/// DragStarting is called even if we are starting the Drag Operation ourselved with StartDragAsync
+/// In this sample, we don't really need to handle it
+///
+///
+///
+void Scenario3_StartDragAsync::SourceTextBlock_DragStarting(Windows::UI::Xaml::UIElement^ sender, Windows::UI::Xaml::DragStartingEventArgs^ e)
+{
+ e->Data->RequestedOperation = DataPackageOperation::Copy;
+ e->Data->SetText(_symbol);
+}
+
+///
+/// Check if the sender is a border AND has the dragged symbol
+///
+///
+///
+bool Scenario3_StartDragAsync::IsTargetBorder(Platform::Object^ sender)
+{
+ auto border = dynamic_cast(sender);
+ return (border != nullptr) && (dynamic_cast(border->DataContext) == _symbol);
+}
+
+///
+/// Entering a target: check if this will result in a win
+///
+///
+///
+void Scenario3_StartDragAsync::DropBorder_DragEnter(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ bool win = (_dragOperation != nullptr) && e->DataView->Contains(StandardDataFormats::Text) && IsTargetBorder(sender);
+ e->DragUIOverride->IsCaptionVisible = false;
+ e->AcceptedOperation = win ? DataPackageOperation::Copy : DataPackageOperation::None;
+}
+
+///
+/// Drop: check if this results in a win
+///
+///
+///
+void Scenario3_StartDragAsync::DropBorder_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e)
+{
+ bool win = (_dragOperation != nullptr) && e->DataView->Contains(StandardDataFormats::Text) && IsTargetBorder(sender);
+ e->AcceptedOperation = win ? DataPackageOperation::Copy : DataPackageOperation::None;
+}
diff --git a/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml.h b/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml.h
new file mode 100644
index 00000000..07c62332
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/Scenario3_StartDragAsync.xaml.h
@@ -0,0 +1,57 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+#pragma once
+
+#include "Scenario3_StartDragAsync.g.h"
+#include "MainPage.xaml.h"
+
+namespace SDKTemplate
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ [Windows::Foundation::Metadata::WebHostHidden]
+ public ref class Scenario3_StartDragAsync sealed
+ {
+ public:
+ Scenario3_StartDragAsync();
+
+ private:
+ MainPage^ rootPage;
+
+ std::mt19937 _rnd;
+ // Collection of symbols to display and drag
+ Platform::Collections::Vector^ _symbols;
+ // Is a round running
+ bool _isActive;
+ // Keeping the Drag operation will allow to cancel it after it has started
+ Windows::Foundation::IAsyncOperation^ _dragOperation;
+ // Symbol to drag
+ Platform::String^ _symbol;
+ // Timer limiting the time allowed to drag the symbol to the right target
+ Windows::UI::Xaml::DispatcherTimer^ _timer;
+
+ void DragCompleted(Windows::Foundation::IAsyncOperation^ asyncInfo,
+ Windows::Foundation::AsyncStatus asyncStatus);
+ void SourceTextBlock_PointerMoved(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
+ void SourceTextBlock_DragStarting(Windows::UI::Xaml::UIElement^ sender, Windows::UI::Xaml::DragStartingEventArgs^ args);
+
+ void DropBorder_DragEnter(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+ void DropBorder_Drop(Platform::Object^ sender, Windows::UI::Xaml::DragEventArgs^ e);
+
+ bool IsTargetBorder(Platform::Object^ sender);
+ void StartButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
+ void OnTick(Platform::Object ^sender, Platform::Object ^args);
+
+ void EndRound(bool hasWon);
+ };
+}
diff --git a/Samples/XamlDragAndDrop/cpp/pch.cpp b/Samples/XamlDragAndDrop/cpp/pch.cpp
new file mode 100644
index 00000000..ade82175
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/pch.cpp
@@ -0,0 +1,5 @@
+//
+// Include the standard header and generate the precompiled header.
+//
+
+#include "pch.h"
diff --git a/Samples/XamlDragAndDrop/cpp/pch.h b/Samples/XamlDragAndDrop/cpp/pch.h
new file mode 100644
index 00000000..cb8c4031
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cpp/pch.h
@@ -0,0 +1,10 @@
+//
+// Header for standard system include files.
+//
+
+#pragma once
+
+#include
+#include
+#include
+#include "App.xaml.h"
diff --git a/Samples/XamlDragAndDrop/cs/Assets/dropcursor.png b/Samples/XamlDragAndDrop/cs/Assets/dropcursor.png
new file mode 100644
index 00000000..98a14c32
Binary files /dev/null and b/Samples/XamlDragAndDrop/cs/Assets/dropcursor.png differ
diff --git a/Samples/XamlDragAndDrop/cs/Assets/symbols.txt b/Samples/XamlDragAndDrop/cs/Assets/symbols.txt
new file mode 100644
index 00000000..0cbf7524
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Assets/symbols.txt
@@ -0,0 +1,9 @@
+🍕
+🍔
+🍞
+🍨
+🍟
+🍜
+🍰
+🍝
+🍣
\ No newline at end of file
diff --git a/Samples/XamlDragAndDrop/cs/DragAndDropSampleManaged.csproj b/Samples/XamlDragAndDrop/cs/DragAndDropSampleManaged.csproj
new file mode 100644
index 00000000..c42a2253
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/DragAndDropSampleManaged.csproj
@@ -0,0 +1,185 @@
+
+
+
+
+ Debug
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}
+ AppContainerExe
+ Properties
+ DragAndDropSampleManaged
+ DragAndDropSampleManaged
+ en-US
+ UAP
+ 10.0.10240.0
+ 10.0.10240.0
+ 14
+ true
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UAP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ true
+
+
+
+ App.xaml.cs
+ App.xaml
+
+
+ MainPage.xaml.cs
+ MainPage.xaml
+
+
+ Properties\AssemblyInfo.cs
+
+
+
+ Scenario1_ListView.xaml
+
+
+ Scenario2_DragUICustomization.xaml
+
+
+ Scenario3_StartDragAsync.xaml
+
+
+
+
+ Designer
+
+
+
+
+ App.xaml
+ MSBuild:Compile
+ Designer
+
+
+ MainPage.xaml
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ Styles\Styles.xaml
+ MSBuild:Compile
+ Designer
+
+
+
+
+
+ Assets\microsoft-sdk.png
+
+
+ Assets\smallTile-sdk.png
+
+
+ Assets\splash-sdk.png
+
+
+ Assets\squareTile-sdk.png
+
+
+ Assets\storeLogo-sdk.png
+
+
+
+ Assets\tile-sdk.png
+
+
+ Assets\windows-sdk.png
+
+
+
+
+
+
+ 14.0
+
+
+
+
\ No newline at end of file
diff --git a/Samples/XamlDragAndDrop/cs/DragAndDropSampleManaged.sln b/Samples/XamlDragAndDrop/cs/DragAndDropSampleManaged.sln
new file mode 100644
index 00000000..3e601c44
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/DragAndDropSampleManaged.sln
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.23012.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DragAndDropSampleManaged", "DragAndDropSampleManaged.csproj", "{DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|ARM.ActiveCfg = Debug|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|ARM.Build.0 = Debug|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|ARM.Deploy.0 = Debug|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x64.ActiveCfg = Debug|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x64.Build.0 = Debug|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x64.Deploy.0 = Debug|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x86.ActiveCfg = Debug|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x86.Build.0 = Debug|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Debug|x86.Deploy.0 = Debug|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|ARM.ActiveCfg = Release|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|ARM.Build.0 = Release|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|ARM.Deploy.0 = Release|ARM
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x64.ActiveCfg = Release|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x64.Build.0 = Release|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x64.Deploy.0 = Release|x64
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x86.ActiveCfg = Release|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x86.Build.0 = Release|x86
+ {DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/XamlDragAndDrop/cs/Package.appxmanifest b/Samples/XamlDragAndDrop/cs/Package.appxmanifest
new file mode 100644
index 00000000..54b3db9a
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Package.appxmanifest
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+ DragAndDropSampleManaged C# Sample
+ Microsoft Corporation
+ Assets\StoreLogo-sdk.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cs/SampleConfiguration.cs b/Samples/XamlDragAndDrop/cs/SampleConfiguration.cs
new file mode 100644
index 00000000..dcd0fd14
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/SampleConfiguration.cs
@@ -0,0 +1,36 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using Windows.UI.Xaml.Controls;
+using DragAndDropSampleManaged;
+
+namespace SDKTemplate
+{
+ public partial class MainPage : Page
+ {
+ public const string FEATURE_NAME = "XAML Drag and Drop";
+
+ List scenarios = new List
+ {
+ new Scenario() { Title="ListView Drag and Drop and Reorder", ClassType=typeof(Scenario1_ListView)},
+ new Scenario() { Title="Drag UI Customization", ClassType=typeof(Scenario2_DragUICustomization)},
+ new Scenario() { Title="StartDragAsync", ClassType=typeof(Scenario3_StartDragAsync)}
+ };
+ }
+
+ public class Scenario
+ {
+ public string Title { get; set; }
+ public Type ClassType { get; set; }
+ }
+}
diff --git a/Samples/XamlDragAndDrop/cs/Scenario1_ListView.xaml b/Samples/XamlDragAndDrop/cs/Scenario1_ListView.xaml
new file mode 100644
index 00000000..16035328
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Scenario1_ListView.xaml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cs/Scenario1_ListView.xaml.cs b/Samples/XamlDragAndDrop/cs/Scenario1_ListView.xaml.cs
new file mode 100644
index 00000000..e8618bde
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Scenario1_ListView.xaml.cs
@@ -0,0 +1,199 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+using SDKTemplate;
+using System;
+using System.Collections.ObjectModel;
+using System.Text;
+using Windows.ApplicationModel.DataTransfer;
+using System.Diagnostics;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+
+namespace DragAndDropSampleManaged
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class Scenario1_ListView : Page
+ {
+ private MainPage rootPage;
+
+ ObservableCollection _reference;
+ ObservableCollection _selection;
+ string _deletedItem;
+
+ public Scenario1_ListView()
+ {
+ this.InitializeComponent();
+
+ _reference = GetSampleData();
+ _selection = new ObservableCollection();
+ SourceListView.ItemsSource = _reference;
+ TargetListView.ItemsSource = _selection;
+
+ }
+ private ObservableCollection GetSampleData()
+ {
+ return new ObservableCollection
+ {
+ "My Research Paper",
+ "Electricity Bill",
+ "My To-do list",
+ "TV sales receipt",
+ "Water Bill",
+ "Grocery List",
+ "Superbowl schedule",
+ "World Cup E-ticket"
+ };
+ }
+
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ rootPage = MainPage.Current;
+ }
+
+ ///
+ /// DragItemsStarting is called when the Drag and Drop operation starts
+ /// We take advantage of it to set the content of the DataPackage
+ /// as well as indicate which operations are supported
+ ///
+ ///
+ ///
+ private void SourceListView_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
+ {
+ // Prepare a string with one dragged item per line
+ var items = new StringBuilder();
+ foreach (var item in e.Items)
+ {
+ if (items.Length > 0) items.AppendLine();
+ items.Append(item as string);
+ }
+ // Set the content of the DataPackage
+ e.Data.SetText(items.ToString());
+ // As we want our Reference list to say intact, we only allow Copy
+ e.Data.RequestedOperation = DataPackageOperation.Copy;
+ }
+
+ ///
+ /// DragOver is called when the dragged pointer moves over a UIElement with AllowDrop=True
+ /// We need to return an AcceptedOperation != None in either DragOver or DragEnter
+ ///
+ ///
+ ///
+ private void TargetListView_DragOver(object sender, DragEventArgs e)
+ {
+ // Our list only accepts text
+ e.AcceptedOperation = (e.DataView.Contains(StandardDataFormats.Text)) ? DataPackageOperation.Copy : DataPackageOperation.None;
+ }
+
+ ///
+ /// We need to return the effective operation from Drop
+ /// This is not important for our source ListView, but it might be if the user
+ /// drags text from another source
+ ///
+ ///
+ ///
+ private async void TargetListView_Drop(object sender, DragEventArgs e)
+ {
+ // This test is in theory not needed as we returned DataPackageOperation.None if
+ // the DataPackage did not contained text. However, it is always better if each
+ // method is robust by itself
+ if (e.DataView.Contains(StandardDataFormats.Text))
+ {
+ // We need to take a Deferral as we won't be able to confirm the end
+ // of the operation synchronously
+ var def = e.GetDeferral();
+ var s = await e.DataView.GetTextAsync();
+ var items = s.Split('\n');
+ foreach (var item in items)
+ {
+ _selection.Add(item);
+ }
+ e.AcceptedOperation = DataPackageOperation.Copy;
+ def.Complete();
+ }
+ }
+
+ ///
+ /// DragtemsStarting is called for D&D and reorder as the framework does not
+ /// know wherer the user will drop the items. Reorder means that the target
+ /// and the source ListView are the same.
+ ///
+ ///
+ ///
+ private void TargetListView_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
+ {
+ // The ListView is declared with selection mode set to Single.
+ // But we want the code to be robust
+ if (e.Items.Count == 1)
+ {
+ e.Data.SetText(e.Items[0] as string);
+ // Reorder or move to trash are always a move
+ e.Data.RequestedOperation = DataPackageOperation.Move;
+ _deletedItem = null;
+ }
+ }
+
+ ///
+ /// Called at the end of the operation, whether it was a reorder or move to trash
+ ///
+ ///
+ ///
+ private void TargetListView_DragItemsCompleted(ListViewBase sender, DragItemsCompletedEventArgs args)
+ {
+ // args.DropResult is always Move and therefore we have to rely on _deletedItem to distinguish
+ // between reorder and move to trash
+ // Another solution would be to listen for events in the ObservableCollection
+ if (_deletedItem != null)
+ {
+ _selection.Remove(_deletedItem);
+ _deletedItem = null;
+ }
+ }
+
+ ///
+ /// Entering the Trash icon
+ ///
+ ///
+ ///
+ private void TargetTextBlock_DragEnter(object sender, DragEventArgs e)
+ {
+ // Trash only accepts text
+ e.AcceptedOperation = (e.DataView.Contains(StandardDataFormats.Text) ? DataPackageOperation.Move : DataPackageOperation.None);
+ // We don't want to show the Move icon
+ e.DragUIOverride.IsGlyphVisible = false;
+ e.DragUIOverride.Caption = "Drop item here to remove it from selection";
+ }
+
+
+ ///
+ /// Drop on the Trash
+ ///
+ ///
+ ///
+ private async void TargetTextBlock_Drop(object sender, DragEventArgs e)
+ {
+ if (e.DataView.Contains(StandardDataFormats.Text))
+ {
+ // We need to take the deferral as the source will read _deletedItem which
+ // we cannot set synchronously
+ var def = e.GetDeferral();
+ _deletedItem = await e.DataView.GetTextAsync();
+ e.AcceptedOperation = DataPackageOperation.Move;
+ def.Complete();
+ }
+ }
+ }
+}
diff --git a/Samples/XamlDragAndDrop/cs/Scenario2_DragUICustomization.xaml b/Samples/XamlDragAndDrop/cs/Scenario2_DragUICustomization.xaml
new file mode 100644
index 00000000..527ca2c2
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Scenario2_DragUICustomization.xaml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cs/Scenario2_DragUICustomization.xaml.cs b/Samples/XamlDragAndDrop/cs/Scenario2_DragUICustomization.xaml.cs
new file mode 100644
index 00000000..d6d7a643
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Scenario2_DragUICustomization.xaml.cs
@@ -0,0 +1,128 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Media.Imaging;
+using System;
+using Windows.Graphics.Imaging;
+using Windows.Foundation;
+using Windows.UI.Xaml;
+using Windows.ApplicationModel.DataTransfer;
+
+namespace DragAndDropSampleManaged
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class Scenario2_DragUICustomization : Page
+ {
+ public Scenario2_DragUICustomization()
+ {
+ this.InitializeComponent();
+ }
+
+ ///
+ /// Start of the Drag and Drop operation: we set some content and change the DragUI
+ /// depending on the selected options
+ ///
+ ///
+ ///
+ private async void SourceGrid_DragStarting(Windows.UI.Xaml.UIElement sender, Windows.UI.Xaml.DragStartingEventArgs args)
+ {
+ args.Data.SetText(SourceTextBox.Text);
+ if ((bool)DataPackageRB.IsChecked)
+ {
+ // Standard icon will be used as the DragUIContent
+ args.DragUI.SetContentFromDataPackage();
+ }
+ else if ((bool)CustomContentRB.IsChecked)
+ {
+ // Generate a bitmap with only the TextBox
+ // We need to take the deferral as the rendering won't be completed synchronously
+ var deferral = args.GetDeferral();
+ var rtb = new RenderTargetBitmap();
+ await rtb.RenderAsync(SourceTextBox);
+ var buffer = await rtb.GetPixelsAsync();
+ var bitmap = SoftwareBitmap.CreateCopyFromBuffer(buffer,
+ BitmapPixelFormat.Bgra8,
+ rtb.PixelWidth,
+ rtb.PixelHeight,
+ BitmapAlphaMode.Premultiplied);
+ args.DragUI.SetContentFromSoftwareBitmap(bitmap);
+ deferral.Complete();
+ }
+ // else just show the dragged UIElement
+ }
+
+ ///
+ /// Entering the Target, we'll change its background and optionally change the DragUI as well
+ ///
+ ///
+ ///
+ private void TargetTextBox_DragEnter(object sender, Windows.UI.Xaml.DragEventArgs e)
+ {
+ /// Change the background of the target
+ VisualStateManager.GoToState(this, "Inside", true);
+ bool hasText = e.DataView.Contains(StandardDataFormats.Text);
+ e.AcceptedOperation = hasText ? DataPackageOperation.Copy : DataPackageOperation.None;
+ if (hasText)
+ {
+ e.DragUIOverride.Caption = "Drop here to insert text";
+ // Now customize the content
+ if ((bool)HideRB.IsChecked)
+ {
+ e.DragUIOverride.IsGlyphVisible = false;
+ e.DragUIOverride.IsContentVisible = false;
+ }
+ else if ((bool)CustomRB.IsChecked)
+ {
+ var bitmap = new BitmapImage(new Uri("ms-appx:///Assets/dropcursor.png", UriKind.RelativeOrAbsolute));
+ // Anchor will define how to position the image relative to the pointer
+ Point anchor = new Point(0,52); // lower left corner of the image
+ e.DragUIOverride.SetContentFromBitmapImage(bitmap, anchor);
+ e.DragUIOverride.IsGlyphVisible = false;
+ e.DragUIOverride.IsCaptionVisible = false;
+ }
+ // else keep the DragUI Content set by the source
+ }
+ }
+
+ ///
+ /// DragLeave: Restore previous background
+ ///
+ ///
+ ///
+ private void TargetTextBox_DragLeave(object sender, Windows.UI.Xaml.DragEventArgs e)
+ {
+ VisualStateManager.GoToState(this, "Outside", true);
+ }
+
+ ///
+ /// Drop: restore the background and append the dragged text
+ ///
+ ///
+ ///
+ private async void TargetTextBox_Drop(object sender, Windows.UI.Xaml.DragEventArgs e)
+ {
+ VisualStateManager.GoToState(this, "Outside", true);
+ bool hasText = e.DataView.Contains(StandardDataFormats.Text);
+ // if the result of the drop is not too important (and a text copy should have no impact on source)
+ // we don't need to take the deferral and this will complete the operation faster
+ e.AcceptedOperation = hasText ? DataPackageOperation.Copy : DataPackageOperation.None;
+ if (hasText)
+ {
+ var text = await e.DataView.GetTextAsync();
+ TargetTextBox.Text += text;
+ }
+ }
+ }
+}
diff --git a/Samples/XamlDragAndDrop/cs/Scenario3_StartDragAsync.xaml b/Samples/XamlDragAndDrop/cs/Scenario3_StartDragAsync.xaml
new file mode 100644
index 00000000..245f4fc1
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Scenario3_StartDragAsync.xaml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/XamlDragAndDrop/cs/Scenario3_StartDragAsync.xaml.cs b/Samples/XamlDragAndDrop/cs/Scenario3_StartDragAsync.xaml.cs
new file mode 100644
index 00000000..795ac7c3
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/Scenario3_StartDragAsync.xaml.cs
@@ -0,0 +1,198 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System.Collections.ObjectModel;
+using Windows.UI.Xaml.Controls;
+using System;
+using Windows.Storage;
+using Windows.UI.Xaml;
+using Windows.ApplicationModel.DataTransfer;
+using Windows.Foundation;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+
+namespace DragAndDropSampleManaged
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class Scenario3_StartDragAsync : Page
+ {
+ Random _rnd = new Random();
+ // Collection of symbols to display and drag
+ ObservableCollection _symbols;
+ // Is a round running
+ bool _isActive;
+ // Symbol to drag
+ string _symbol;
+ // Timer limiting the time allowed to drag the symbol to the right target
+ DispatcherTimer _timer;
+ // Keeping the Drag operation will allow to cancel it after it has started
+ IAsyncOperation _dragOperation;
+
+ public Scenario3_StartDragAsync()
+ {
+ this.InitializeComponent();
+ this.Loaded += Scenario3_StartDragAsync_Loaded;
+ }
+
+ private async void Scenario3_StartDragAsync_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
+ {
+ // Initialize the symbols from the Text file
+ var uri = new Uri("ms-appx:///Assets/Symbols.txt", UriKind.RelativeOrAbsolute);
+ var file = await StorageFile.GetFileFromApplicationUriAsync(uri);
+ var lines = await FileIO.ReadLinesAsync(file);
+ _symbols = new ObservableCollection(lines);
+ DropGridView.ItemsSource = _symbols;
+ }
+
+ ///
+ /// Start button clicked: select a symbol, update the display
+ /// and start the timer according to the difficulty level
+ ///
+ ///
+ ///
+ private void StartButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
+ {
+ if (!_isActive)
+ {
+ int index = _rnd.Next(_symbols.Count);
+ _symbol = _symbols[index];
+ SourceTextBlock.Text = _symbol;
+ ResultTextBlock.Text = string.Empty;
+ _isActive = true;
+
+ if (_timer == null)
+ {
+ _timer = new DispatcherTimer();
+ _timer.Tick += OnTick;
+ }
+ bool easy = (EasyRB.IsChecked != null) && EasyRB.IsChecked.Value;
+ _timer.Interval = TimeSpan.FromSeconds(easy ? 5.0 : 1.5);
+ _timer.Start();
+ StartButton.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
+ SourceTextBlock.Visibility = Windows.UI.Xaml.Visibility.Visible;
+ }
+ }
+
+ ///
+ /// End of the timer: player lost and we might have to cancel the drag operation
+ ///
+ ///
+ ///
+ private void OnTick(object sender, object args)
+ {
+ _timer.Stop();
+ if (_dragOperation != null)
+ {
+ // Cancel the drag operation: this is equivalent of the user pressing Escape
+ // or releasing the pointer on a non-target
+ // DropCompleted event would return DataPackageOperation.None as the result
+ _dragOperation.Cancel();
+ }
+ else
+ {
+ // We test _isActive just in case the timer expired when we were handling the drop
+ if (_isActive)
+ {
+ EndRound(false);
+ }
+ }
+ }
+
+ ///
+ /// If the pointer is moved and we are not yet dragging, start a drag operation
+ /// using StartDragAsync, which will allow a later cancellation
+ ///
+ ///
+ ///
+ private void SourceTextBlock_PointerMoved(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
+ {
+ if (_isActive && e.Pointer.IsInContact && (_dragOperation == null))
+ {
+ _dragOperation = SourceTextBlock.StartDragAsync(e.GetCurrentPoint(SourceTextBlock));
+ _dragOperation.Completed = DragCompleted;
+ }
+ }
+
+ ///
+ /// Update the user interface when the round is finished
+ ///
+ ///
+ private void EndRound(bool hasWon)
+ {
+ _isActive = false;
+ ResultTextBlock.Text = (hasWon ? "You win :-) !!" : "You lose :-( !!");
+ StartButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
+ SourceTextBlock.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
+ }
+
+ ///
+ /// Completion callback for the asynchronous call:
+ /// it is called whether the drop succeeded, or the user released the pointer on a non-target
+ /// or else we cancelled the operation from the timer's callback
+ ///
+ ///
+ ///
+ private void DragCompleted(IAsyncOperation asyncInfo, AsyncStatus asyncStatus)
+ {
+ _dragOperation = null;
+ if (_timer != null) _timer.Stop();
+ EndRound((asyncStatus == AsyncStatus.Completed) && (asyncInfo.GetResults() == DataPackageOperation.Copy));
+ }
+
+ ///
+ /// DragStarting is called even if we are starting the Drag Operation ourselved with StartDragAsync
+ /// In this sample, we don't really need to handle it
+ ///
+ ///
+ ///
+ private void SourceTextBlock_DragStarting(Windows.UI.Xaml.UIElement sender, Windows.UI.Xaml.DragStartingEventArgs e)
+ {
+ e.Data.RequestedOperation = DataPackageOperation.Copy;
+ e.Data.SetText(_symbol);
+ }
+
+ ///
+ /// Check if the sender is a border AND has the dragged symbol
+ ///
+ ///
+ ///
+ private bool IsSymbolTargetBorder(object sender)
+ {
+ var border = sender as Border;
+ return (border != null) && (border.DataContext as string == _symbol);
+ }
+
+ ///
+ /// Entering a target: check if this will result in a win
+ ///
+ ///
+ ///
+ private void DropBorder_DragEnter(object sender, Windows.UI.Xaml.DragEventArgs e)
+ {
+ bool win = (_dragOperation != null) && e.DataView.Contains(StandardDataFormats.Text) && IsSymbolTargetBorder(sender);
+ e.AcceptedOperation = win ? DataPackageOperation.Copy : DataPackageOperation.None;
+ e.DragUIOverride.IsCaptionVisible = false;
+ }
+
+ ///
+ /// Drop: check if this results in a win
+ ///
+ ///
+ ///
+ private void DropBorder_Drop(object sender, Windows.UI.Xaml.DragEventArgs e)
+ {
+ bool win = (_dragOperation != null) && e.DataView.Contains(StandardDataFormats.Text) && IsSymbolTargetBorder(sender);
+ e.AcceptedOperation = win ? DataPackageOperation.Copy : DataPackageOperation.None;
+ }
+ }
+}
diff --git a/Samples/XamlDragAndDrop/cs/project.json b/Samples/XamlDragAndDrop/cs/project.json
new file mode 100644
index 00000000..c5949392
--- /dev/null
+++ b/Samples/XamlDragAndDrop/cs/project.json
@@ -0,0 +1,16 @@
+{
+ "dependencies": {
+ "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
+ },
+ "frameworks": {
+ "uap10.0": {}
+ },
+ "runtimes": {
+ "win10-arm": {},
+ "win10-arm-aot": {},
+ "win10-x86": {},
+ "win10-x86-aot": {},
+ "win10-x64": {},
+ "win10-x64-aot": {}
+ }
+}
\ No newline at end of file
diff --git a/Samples/XamlFocusVisuals/README.md b/Samples/XamlFocusVisuals/README.md
index e8c3cd3b..6fa4e9d8 100644
--- a/Samples/XamlFocusVisuals/README.md
+++ b/Samples/XamlFocusVisuals/README.md
@@ -1,3 +1,7 @@
+
+
# Focus visuals sample
This sample shows how to take advantage of the new system drawn focus visuals, or to create your own custom focus visuals if the system drawn ones do not fit your needs.
@@ -31,9 +35,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlListView/README.md b/Samples/XamlListView/README.md
index 6208b590..35d8359a 100644
--- a/Samples/XamlListView/README.md
+++ b/Samples/XamlListView/README.md
@@ -1,3 +1,7 @@
+
+
# ListView and GridView sample
This sample shows the usage of ListView and Gridview.
@@ -39,9 +43,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlMasterDetail/README.md b/Samples/XamlMasterDetail/README.md
index 6da3771d..fc1e797e 100644
--- a/Samples/XamlMasterDetail/README.md
+++ b/Samples/XamlMasterDetail/README.md
@@ -1,3 +1,7 @@
+
+
# Master/detail sample
This sample shows how to implement a responsive master/detail experience in XAML. In the [master/detail pattern](https://msdn.microsoft.com/en-us/library/windows/apps/dn997765.aspx), a master list is used to select an item that will then appear in a detail view.
@@ -41,9 +45,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlNavigation/README.md b/Samples/XamlNavigation/README.md
index b0908389..04bee66c 100644
--- a/Samples/XamlNavigation/README.md
+++ b/Samples/XamlNavigation/README.md
@@ -1,4 +1,8 @@
-# XAML Navigation Menu sample
+
+
+# XAML navigation menu sample
This sample demonstrates how to provide a top-level navigation menu to users (a.k.a. a hamburger menu).
@@ -37,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlPivot/README.md b/Samples/XamlPivot/README.md
index 8893524d..a7fb50fc 100644
--- a/Samples/XamlPivot/README.md
+++ b/Samples/XamlPivot/README.md
@@ -1,3 +1,7 @@
+
+
# Pivot sample
This sample shows how to use a Pivot control in your UWP application.
@@ -32,9 +36,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlPivot/cs/Scenario1.xaml.cs b/Samples/XamlPivot/cs/Scenario1.xaml.cs
index dd843091..148dec82 100644
--- a/Samples/XamlPivot/cs/Scenario1.xaml.cs
+++ b/Samples/XamlPivot/cs/Scenario1.xaml.cs
@@ -61,7 +61,7 @@ namespace PivotCS
}
}
- private void ShowItem(SampleDataModel model)
+ async private void ShowItem(SampleDataModel model)
{
var MyDialog = new ContentDialog();
@@ -82,8 +82,7 @@ namespace PivotCS
}
MyDialog.PrimaryButtonText = "OK";
-
- Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => MyDialog.ShowAsync());
+ await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => await MyDialog.ShowAsync());
}
private void Scenario2_Click(Windows.UI.Xaml.Documents.Hyperlink sender, Windows.UI.Xaml.Documents.HyperlinkClickEventArgs args)
{
diff --git a/Samples/XamlPivot/cs/Scenario2.xaml.cs b/Samples/XamlPivot/cs/Scenario2.xaml.cs
index ddd44a51..c98be7f8 100644
--- a/Samples/XamlPivot/cs/Scenario2.xaml.cs
+++ b/Samples/XamlPivot/cs/Scenario2.xaml.cs
@@ -94,7 +94,7 @@ namespace PivotCS
ShowItem(args.SelectedItem as SampleDataModel);
}
- private void ShowItem(SampleDataModel model)
+ async private void ShowItem(SampleDataModel model)
{
var MyDialog = new ContentDialog();
@@ -115,8 +115,7 @@ namespace PivotCS
}
MyDialog.PrimaryButtonText = "OK";
-
- Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => MyDialog.ShowAsync());
+ await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => await MyDialog.ShowAsync());
}
diff --git a/Samples/XamlPullToRefresh/README.md b/Samples/XamlPullToRefresh/README.md
index 9745651e..f5798a45 100644
--- a/Samples/XamlPullToRefresh/README.md
+++ b/Samples/XamlPullToRefresh/README.md
@@ -1,4 +1,8 @@
-# PullToRefresh sample
+
+
+# Pull-to-refresh sample
This sample shows how to implement a "pull-to-refresh" feature for a scrollable list
@@ -20,9 +24,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlResponsiveTechniques/README.md b/Samples/XamlResponsiveTechniques/README.md
index d9e350cf..4bc849fa 100644
--- a/Samples/XamlResponsiveTechniques/README.md
+++ b/Samples/XamlResponsiveTechniques/README.md
@@ -1,4 +1,8 @@
-# XAML Responsiveness Techniques sample
+
+
+# Responsiveness techniques sample
Showcases a UI scenario from Settings (Personalization UI) and highlights the simple responsive techniques we have introduced in Windows 10 – namely, VisualState.Setters, AdaptiveTriggers, SplitView and RelativePanel (static and dynamically modifying properties). This sample can be viewed as a getting started sample.
@@ -19,9 +23,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlResponsiveTechniques/cs/MainPage.xaml b/Samples/XamlResponsiveTechniques/cs/MainPage.xaml
index 343f075a..4e71a5e6 100644
--- a/Samples/XamlResponsiveTechniques/cs/MainPage.xaml
+++ b/Samples/XamlResponsiveTechniques/cs/MainPage.xaml
@@ -18,17 +18,17 @@
-
+
+ RelativePanel.RightOf="BackgroundButton" RelativePanel.AlignVerticalCenterWith="BackgroundButton"/>
+ RelativePanel.Below="BackgroundButton" IsCompact="True" Click="Button_Click"/>
+ RelativePanel.RightOf="LockButton" RelativePanel.Below="BackgroundButton" RelativePanel.AlignVerticalCenterWith="LockButton"/>
+ RelativePanel.Below="LockButton" IsCompact="True" Click="Button_Click"/>
+ RelativePanel.RightOf="CameraButton" RelativePanel.Below="LockButton" RelativePanel.AlignVerticalCenterWith="CameraButton"/>
@@ -51,7 +51,7 @@
-
+
Fill
Fit
@@ -60,6 +60,11 @@
Center
Span
+
+ The controls on this page don't perform any actions and are not intended to be interacted with, they are for illustrative purposes only.
+
+ To use this sample, simply resize the main window and observe how the controls on the page adapt to the change in size.
+
@@ -97,6 +102,7 @@
+
@@ -112,6 +118,7 @@
+
diff --git a/Samples/XamlResponsiveTechniques/cs/MainPage.xaml.cs b/Samples/XamlResponsiveTechniques/cs/MainPage.xaml.cs
index 67a33598..93f2af42 100644
--- a/Samples/XamlResponsiveTechniques/cs/MainPage.xaml.cs
+++ b/Samples/XamlResponsiveTechniques/cs/MainPage.xaml.cs
@@ -31,5 +31,14 @@ namespace XAMLResponsiveTechniques
{
MySplitView.IsPaneOpen = !MySplitView.IsPaneOpen;
}
+
+ private async void Button_Click(object sender, RoutedEventArgs e)
+ {
+ ContentDialog d = new ContentDialog();
+ d.Title = "Not implemented";
+ d.Content = "The buttons are for illustrative purposes only and do not perform any action";
+ d.PrimaryButtonText = "OK";
+ await d.ShowAsync();
+ }
}
}
diff --git a/Samples/XamlStateTriggers/README.md b/Samples/XamlStateTriggers/README.md
index 6c1ea9bf..e52b4300 100644
--- a/Samples/XamlStateTriggers/README.md
+++ b/Samples/XamlStateTriggers/README.md
@@ -1,4 +1,8 @@
-# State Triggers sample
+
+
+# State triggers sample
Showcases extensible StateTriggers with a couple of different custom triggers built into a scenario app. Custom triggers shown here include DeviceFamilyTrigger, InputTypeTrigger, ControlSizeTrigger and ViewModelTrigger
@@ -19,9 +23,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlTailoredMultipleViews/README.md b/Samples/XamlTailoredMultipleViews/README.md
index 5789460f..01763ce3 100644
--- a/Samples/XamlTailoredMultipleViews/README.md
+++ b/Samples/XamlTailoredMultipleViews/README.md
@@ -1,6 +1,10 @@
-# XAML Tailored Multiple Views sample
+
-Showcases how to build tailored UI using multiple views optimized for One-Handed use (Pivot + commands at the bottom for devices <7” in size and SplitView + commands at the top for devices > 7” in size)
+# Tailored multiple views sample
+
+Showcases how to build tailored UI using multiple views that are optimized for one-handed use. Specifically, the usage of the Pivot control plus commands at the bottom of devices that are < 7" in size and the usage of the SplitView control plus commands at the top of the device for devices > 7" in size.
**Note** The Windows universal samples require Visual Studio 2015 to build and Windows 10 to execute.
@@ -8,10 +12,13 @@ To obtain information about Windows 10, go to [Windows 10](http://go.microsoft.c
To obtain information about Microsoft Visual Studio 2015 and the tools for developing Windows apps, go to [Visual Studio 2015](http://go.microsoft.com/fwlink/?LinkID=532422)
-## Related topics
-
### Reference
+
+
+[Pivot control](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.pivot.aspx)
+
+[SplitView control](https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.splitview.aspx)
## System requirements
@@ -23,9 +30,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlTransform3DAnimations/README.md b/Samples/XamlTransform3DAnimations/README.md
index 98ee18f7..9c26d7ca 100644
--- a/Samples/XamlTransform3DAnimations/README.md
+++ b/Samples/XamlTransform3DAnimations/README.md
@@ -1,3 +1,7 @@
+
+
# Transform3D animations sample
This sample shows how Transform3D can be used to create custom 3D animations and transitions in XAML apps.
@@ -37,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlTransform3DParallax/README.md b/Samples/XamlTransform3DParallax/README.md
index d33284f8..17697e87 100644
--- a/Samples/XamlTransform3DParallax/README.md
+++ b/Samples/XamlTransform3DParallax/README.md
@@ -1,3 +1,7 @@
+
+
# Transform3D parallax sample
This sample shows how to implement parallax effects using the new Transform3D API.
@@ -37,9 +41,10 @@ To obtain information about Microsoft Visual Studio 2015 and the tools for devel
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlTransform3DParallax/cs/Transform3DParallax.csproj b/Samples/XamlTransform3DParallax/cs/Transform3DParallax.csproj
index 00ef2e32..57324556 100644
--- a/Samples/XamlTransform3DParallax/cs/Transform3DParallax.csproj
+++ b/Samples/XamlTransform3DParallax/cs/Transform3DParallax.csproj
@@ -91,7 +91,7 @@
-
+
App.xaml.cs
App.xaml
diff --git a/Samples/XamlUIBasics/README.md b/Samples/XamlUIBasics/README.md
index 26598ab1..bcba6ec9 100644
--- a/Samples/XamlUIBasics/README.md
+++ b/Samples/XamlUIBasics/README.md
@@ -1,4 +1,8 @@
-# XAML UI Basics sample
+
+
+# XAML UI basics sample
This sample shows all of the XAML controls in an interactive format.
@@ -35,9 +39,10 @@ Each control page in the application has links to the relevant MSDN documentatio
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/AppUIBasics.csproj b/Samples/XamlUIBasics/cs/AppUIBasics/AppUIBasics.csproj
index fbcfb713..8b1a8d89 100644
--- a/Samples/XamlUIBasics/cs/AppUIBasics/AppUIBasics.csproj
+++ b/Samples/XamlUIBasics/cs/AppUIBasics/AppUIBasics.csproj
@@ -310,10 +310,16 @@
Assets\SplashScreen.png
+
+ Assets\smalltile-sdk.png
+
Assets\treetops.jpg
+
+ Assets\storelogo-sdk.png
+
@@ -334,16 +340,6 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/Logo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/Logo.scale-100.png
deleted file mode 100644
index 5c1a79ed..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/Logo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/SmallLogo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/SmallLogo.scale-100.png
deleted file mode 100644
index 96f91e5e..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/SmallLogo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/SplashScreen.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/SplashScreen.scale-100.png
deleted file mode 100644
index d332714e..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/SplashScreen.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/storelogo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/storelogo.scale-100.png
deleted file mode 100644
index dda5876f..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/storelogo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/widelogo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/widelogo.scale-100.png
deleted file mode 100644
index 16c3ccc6..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-black/widelogo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/Logo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/Logo.scale-100.png
deleted file mode 100644
index 4dc2e7ad..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/Logo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/SmallLogo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/SmallLogo.scale-100.png
deleted file mode 100644
index ce5e7637..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/SmallLogo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/SplashScreen.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/SplashScreen.scale-100.png
deleted file mode 100644
index 4a321296..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/SplashScreen.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/storelogo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/storelogo.scale-100.png
deleted file mode 100644
index 71fd3b43..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/storelogo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/widelogo.scale-100.png b/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/widelogo.scale-100.png
deleted file mode 100644
index 4177c764..00000000
Binary files a/Samples/XamlUIBasics/cs/AppUIBasics/Assets/contrast-white/widelogo.scale-100.png and /dev/null differ
diff --git a/Samples/XamlUIBasics/cs/AppUIBasics/Package.appxmanifest b/Samples/XamlUIBasics/cs/AppUIBasics/Package.appxmanifest
index c2d0f89f..92662a5f 100644
--- a/Samples/XamlUIBasics/cs/AppUIBasics/Package.appxmanifest
+++ b/Samples/XamlUIBasics/cs/AppUIBasics/Package.appxmanifest
@@ -5,7 +5,7 @@
App UI Basics C# Sample
Microsoft Corporation
- Assets\StoreLogo.png
+ Assets\StoreLogo-sdk.png
@@ -15,7 +15,12 @@
-
+
+
+
+
+
+
diff --git a/Samples/XmlDocument/README.md b/Samples/XmlDocument/README.md
index e75aa782..0dfbd75f 100644
--- a/Samples/XmlDocument/README.md
+++ b/Samples/XmlDocument/README.md
@@ -1,5 +1,5 @@
# XML DOM sample
@@ -34,9 +34,10 @@ Specifically, this sample covers:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
diff --git a/Samples/XmlLite/README.md b/Samples/XmlLite/README.md
index 25426956..486c41d0 100644
--- a/Samples/XmlLite/README.md
+++ b/Samples/XmlLite/README.md
@@ -1,5 +1,5 @@
# XmlLite sample
@@ -28,9 +28,10 @@ Specifically, this sample covers:
## Build the sample
-1. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
-2. Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either C++, C#, or JavaScript. Double-click the Visual Studio 2015 Solution (.sln) file.
-3. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample