SettingsCommand Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Note
SettingsPane is deprecated, and might not work on all versions of Windows 10. Instead of using a SettingsPane, integrate settings options into the app experience. For more info, see Guidelines for app settings.
Creates a settings command object that represents a settings entry. This settings command can be appended to the ApplicationCommands vector.
public ref class SettingsCommand sealed : IUICommand
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.ApplicationSettings.ISettingsCommandFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
class SettingsCommand final : IUICommand
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.ApplicationSettings.ISettingsCommandFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class SettingsCommand final : IUICommand
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.ApplicationSettings.ISettingsCommandFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
public sealed class SettingsCommand : IUICommand
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.ApplicationSettings.ISettingsCommandFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class SettingsCommand : IUICommand
function SettingsCommand(settingsCommandId, label, handler)
Public NotInheritable Class SettingsCommand
Implements IUICommand
- Inheritance
- Attributes
- Implements
Windows requirements
Device family |
Windows 10 (introduced in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
|
API contract |
Windows.Foundation.UniversalApiContract (introduced in v1.0)
|
Examples
The following code shows how to add app commands by using the SettingsPane and SettingsCommand classes. For the full example, see App settings sample.
using Windows.UI.ApplicationSettings;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using System;
// This is the click handler for the 'addSettingsScenarioAdd' button.
// Replace this with your own handler if you have a button or buttons on this page.
void addSettingsScenarioAdd_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
if (b != null)
{
rootPage.NotifyUser(
"You selected the " + b.Content + " button",
NotifyType.StatusMessage);
if (!this.isEventRegistered)
{
SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested;
this.isEventRegistered = true;
}
}
}
void onSettingsCommand(IUICommand command)
{
SettingsCommand settingsCommand = (SettingsCommand)command;
rootPage.NotifyUser(
"You selected the " + settingsCommand.Label + " settings command",
NotifyType.StatusMessage);
}
void onCommandsRequested(
SettingsPane settingsPane,
SettingsPaneCommandsRequestedEventArgs eventArgs)
{
UICommandInvokedHandler handler = new UICommandInvokedHandler(onSettingsCommand);
SettingsCommand generalCommand = new SettingsCommand(
"generalSettings", "General", handler);
eventArgs.Request.ApplicationCommands.Add(generalCommand);
SettingsCommand helpCommand = new SettingsCommand("helpPage", "Help", handler);
eventArgs.Request.ApplicationCommands.Add(helpCommand);
}
#include "pch.h"
#include "AddSettingsScenario.xaml.h"
using namespace ApplicationSettings;
using namespace Windows::Foundation;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;
using namespace Windows::UI::ApplicationSettings;
using namespace Windows::UI::Popups;
void AddSettingsScenario::addSettingsScenarioAdd_Click(
Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
Button^ b = safe_cast<Button^>(sender);
if (b != nullptr)
{
rootPage->NotifyUser("You selected the " + b->Content + " button",
NotifyType::StatusMessage);
if (!this->isEventRegistered)
{
this->commandsRequestedEventRegistrationToken =
SettingsPane::GetForCurrentView()->CommandsRequested +=
ref new TypedEventHandler<SettingsPane^,
SettingsPaneCommandsRequestedEventArgs^>(this,
&AddSettingsScenario::OnCommandsRequested);
this->isEventRegistered = true;
}
}
}
void AddSettingsScenario::OnSettingsCommand(
Windows::UI::Popups::IUICommand^ command)
{
SettingsCommand^ settingsCommand = safe_cast<SettingsCommand^>(command);
rootPage->NotifyUser(
"You selected the " + settingsCommand->Label + " settings command",
NotifyType::StatusMessage);
}
void AddSettingsScenario::OnCommandsRequested(
Windows::UI::ApplicationSettings::SettingsPane^ settingsPane,
Windows::UI::ApplicationSettings::SettingsPaneCommandsRequestedEventArgs^ eventArgs)
{
UICommandInvokedHandler^ handler = ref new UICommandInvokedHandler(
this, &AddSettingsScenario::OnSettingsCommand);
SettingsCommand^ generalCommand = ref new SettingsCommand(
"generalSettings", "General", handler);
eventArgs->Request->ApplicationCommands->Append(generalCommand);
SettingsCommand^ helpCommand = ref new SettingsCommand("helpPage", "Help", handler);
eventArgs->Request->ApplicationCommands->Append(helpCommand);
}
#include "pch.h"
#include "AddSettingsScenario.xaml.h"
using namespace ApplicationSettings;
using namespace Windows::Foundation;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;
using namespace Windows::UI::ApplicationSettings;
using namespace Windows::UI::Popups;
void ApplicationSettings::AddSettingsScenario::addSettingsScenarioAdd_Click(
Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
Button^ b = safe_cast<Button^>(sender);
if (b != nullptr)
{
rootPage->NotifyUser("You selected the " + b->Content + " button",
NotifyType::StatusMessage);
if (!this->isEventRegistered)
{
this->commandsRequestedEventRegistrationToken =
SettingsPane::GetForCurrentView()->CommandsRequested +=
ref new TypedEventHandler<SettingsPane^,
SettingsPaneCommandsRequestedEventArgs^>(this,
&AddSettingsScenario::onCommandsRequested);
this->isEventRegistered = true;
}
}
}
void ApplicationSettings::AddSettingsScenario::onSettingsCommand(
Windows::UI::Popups::IUICommand^ command)
{
SettingsCommand^ settingsCommand = safe_cast<SettingsCommand^>(command);
rootPage->NotifyUser(
"You selected the " + settingsCommand->Label + " settings command",
NotifyType::StatusMessage);
}
void ApplicationSettings::AddSettingsScenario::onCommandsRequested(
Windows::UI::ApplicationSettings::SettingsPane^ settingsPane,
Windows::UI::ApplicationSettings::SettingsPaneCommandsRequestedEventArgs^ eventArgs)
{
UICommandInvokedHandler^ handler = ref new UICommandInvokedHandler(
this, &AddSettingsScenario::onSettingsCommand);
SettingsCommand^ generalCommand = ref new SettingsCommand(
"generalSettings", "General", handler);
eventArgs->Request->ApplicationCommands->Append(generalCommand);
SettingsCommand^ helpCommand = ref new SettingsCommand("helpPage", "Help", handler);
eventArgs->Request->ApplicationCommands->Append(helpCommand);
}
Imports Windows.UI.ApplicationSettings
Imports Windows.UI.Popups
Imports Windows.UI.Xaml
Imports Windows.UI.Xaml.Controls
Imports Windows.UI.Xaml.Navigation
Imports System
'' This is the click handler for the 'addSettingsScenarioAdd' button.
'' Replace this with your own handler if you have a button or buttons on this page.
Private Sub addSettingsScenarioAdd_Click(sender As Object, e As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
If b IsNot Nothing Then
rootPage.NotifyUser("You selected the " & b.Content & " button", _
NotifyType.StatusMessage)
If Not Me.isEventRegistered Then
AddHandler SettingsPane.GetForCurrentView.CommandsRequested, _
AddressOf onCommandsRequested
Me.isEventRegistered = True
End If
End If
End Sub
Private Sub onSettingsCommand(command As IUICommand)
Dim settingsCommand As SettingsCommand = DirectCast(command, SettingsCommand)
rootPage.NotifyUser( _
"You selected the " & settingsCommand.Label & " settings command", _
NotifyType.StatusMessage)
End Sub
Private Sub onCommandsRequested(settingsPane As SettingsPane, _
eventArgs As SettingsPaneCommandsRequestedEventArgs)
Dim handler As New UICommandInvokedHandler(AddressOf onSettingsCommand)
Dim generalCommand As New SettingsCommand("generalSettings", "General", handler)
eventArgs.Request.ApplicationCommands.Add(generalCommand)
Dim helpCommand As New SettingsCommand("helpPage", "Help", handler)
eventArgs.Request.ApplicationCommands.Add(helpCommand)
End Sub
'' This is the click handler for the 'addSettingsScenarioShow' button.
'' Replace this with your own handler if you have a button or buttons on this page.
Private Sub addSettingsScenarioShow_Click(sender As Object, e As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
If b IsNot Nothing Then
rootPage.NotifyUser("You selected the " & b.Content & " button", _
NotifyType.StatusMessage)
SettingsPane.Show()
End If
End Sub
Remarks
Note
This class is not agile, which means that you need to consider its threading model and marshaling behavior. For more info, see Threading and Marshaling (C++/CX) and Using Windows Runtime objects in a multithreaded environment (.NET).
Constructors
SettingsCommand(Object, String, UICommandInvokedHandler) |
Creates a new settings command. |
Properties
AccountsCommand |
Gets the command for a web account in the account settings pane. |
Id |
Gets or sets the command ID. |
Invoked |
Gets or sets the handler for the event that is raised when the user selects the command. |
Label |
Gets or sets the label for the command. |