Partilhar via


Application.RequestedTheme Propriedade

Definição

Obtém ou define um valor que determina a preferência claro-escuro para o tema geral de um aplicativo.

public:
 property ApplicationTheme RequestedTheme { ApplicationTheme get(); void set(ApplicationTheme value); };
ApplicationTheme RequestedTheme();

void RequestedTheme(ApplicationTheme value);
public ApplicationTheme RequestedTheme { get; set; }
var applicationTheme = application.requestedTheme;
application.requestedTheme = applicationTheme;
Public Property RequestedTheme As ApplicationTheme
<application RequestedTheme="applicationThemeMemberName" .../>

Valor da propriedade

Um valor da enumeração. O valor inicial é o tema padrão definido pelo usuário nas configurações do Windows.

Exemplos

Este exemplo mostra como salvar o tema solicitado nas configurações do aplicativo local e, em seguida, recuperá-lo e aplicá-lo quando o aplicativo for reiniciado.

<ToggleSwitch Header="Theme" OnContent="Light" OffContent="Dark"
              Toggled="ToggleSwitch_Toggled" Loaded="ToggleSwitch_Loaded"/>
private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e)
{
    // Save theme choice to LocalSettings. 
    // ApplicationTheme enum values: 0 = Light, 1 = Dark
    ApplicationData.Current.LocalSettings.Values["themeSetting"] =
                                                     ((ToggleSwitch)sender).IsOn ? 0 : 1;
}

private void ToggleSwitch_Loaded(object sender, RoutedEventArgs e)
{
    ((ToggleSwitch)sender).IsOn = App.Current.RequestedTheme == ApplicationTheme.Light;
}

App.xaml.cs

public App()
{
    this.InitializeComponent();

    // Get theme choice from LocalSettings.
    object value = ApplicationData.Current.LocalSettings.Values["themeSetting"];

    if (value != null)
    {
        // Apply theme choice.
        App.Current.RequestedTheme = (ApplicationTheme)(int)value;
    }
}

Comentários

Há dois temas internos: "Claro" e "Escuro". Por padrão, seu aplicativo é executado usando o tema definido pelo usuário nas configurações do Windows (Configurações > Personalização > Cores > Escolher seu modo de aplicativo padrão). Você pode definir a propriedade RequestedTheme do aplicativo para substituir o padrão do usuário e especificar qual tema é usado.

O tema só pode ser definido quando o aplicativo é iniciado, não enquanto ele está em execução. A tentativa de definir RequestedTheme enquanto o aplicativo está em execução gera uma exceção (NotSupportedException para o código do Microsoft .NET). Se você der ao usuário a opção de escolher um tema que faça parte da interface do usuário do aplicativo, salve a configuração nos dados do aplicativo e aplique-a quando o aplicativo for reiniciado. (Para obter mais informações sobre as configurações do aplicativo, consulte Armazenar e recuperar configurações e outros dados do aplicativo).

Você pode alterar valores de tema específicos em tempo de execução após Application.RequestedTheme ser aplicado, se você usar a propriedade FrameworkElement.RequestedTheme e definir valores em elementos específicos na interface do usuário.

Há também um tema "HighContrast" que usa valores do sistema, mas os aplicativos e o código do aplicativo usam uma técnica diferente para alternar o aplicativo para alto contraste. A propriedade RequestedTheme será ignorada se o usuário estiver em execução no modo de alto contraste. Confira Temas de alto contraste e exemplo de estilo de alto contraste XAML.

Embora o aplicativo não possa alternar os temas em tempo de execução, o usuário pode (começando com Windows 8.1). Por exemplo, um usuário pode habilitar um tema de alto contraste enquanto seu aplicativo está em execução, usando o atalho de tecla Alt+Shift+PrtScn. Se isso acontecer, o sistema de recursos XAML recalculará os valores de recurso para qualquer uso de extensão de marcação {ThemeResource} . Recursos apropriados para o tema, como cores e pincéis, usam valores apropriados para o tema atual, mesmo que não tenha sido o aplicativo que solicitou esse tema originalmente.

Os recursos que são específicos do tema normalmente são definidos em um dicionário de recursos separado em XAML. Esse dicionário de recursos vem da propriedade ThemeDictionaries do ResourceDictionary primário que é usado para modelos de controle. O dicionário de recursos do sistema padrão para recursos específicos do tema é chamado ThemeResources.xaml. Esse arquivo está disponível na pasta (Arquivos de Programas)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP<SDK version>\Generic de uma instalação do SDK (Software Development Kit) do Windows.

Observações para versões anteriores

Windows 8.x Por padrão, seu aplicativo é executado usando o tema "Escuro" (no arquivo themeresources.xaml, o nome da chave para os recursos "Escuro" é "Padrão").

  • No Windows, definir RequestedTheme como ElementTheme.Default sempre resultará em "Escuro" como o tema.
  • Em Windows Phone, o uso do valor ElementTheme.Default resultará em uma consulta para o tema do sistema, conforme definido pelo usuário.

Aplica-se a

Confira também