Application.RequestedTheme Proprietà

Definizione

Ottiene o imposta un valore che determina la preferenza chiaro-scuro per il tema complessivo di un'app.

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" .../>

Valore della proprietà

Valore dell'enumerazione. Il valore iniziale è il tema predefinito impostato dall'utente nelle impostazioni di Windows.

Esempio

In questo esempio viene illustrato come salvare il tema richiesto nelle impostazioni dell'app locale e quindi recuperarlo e applicarlo al riavvio dell'app.

<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;
    }
}

Commenti

Esistono due temi predefiniti: "Luce" e "Scuro". Per impostazione predefinita, l'app viene eseguita usando il tema impostato dall'utente nelle impostazioni di Windows (Impostazioni > Personalizzazione > colori > scegliere la modalità app predefinita). È possibile impostare la proprietà RequestedTheme dell'app per eseguire l'override dell'impostazione predefinita dell'utente e specificare quale tema viene usato.

Il tema può essere impostato solo quando l'app viene avviata, non mentre è in esecuzione. Il tentativo di impostare RequestedTheme durante l'esecuzione dell'app genera un'eccezione (NotSupportedException per il codice Microsoft .NET). Se si assegna all'utente un'opzione per selezionare un tema che fa parte dell'interfaccia utente dell'app, è necessario salvare l'impostazione nei dati dell'app e applicarla al riavvio dell'app. Per altre informazioni sulle impostazioni dell'app, vedere Archiviare e recuperare le impostazioni e altri dati dell'app.

È possibile modificare valori di tema specifici in fase di esecuzione dopo l'applicazione.RequestedTheme, se si usa la proprietà FrameworkElement.RequestedTheme e imposta i valori su elementi specifici nell'interfaccia utente.

Esiste anche un tema "HighContrast" che usa i valori di sistema, ma le app e il codice dell'app usano una tecnica diversa per passare l'app a contrasto elevato. La proprietà RequestedTheme viene ignorata se l'utente è in esecuzione in modalità a contrasto elevato. Vedere Temi a contrasto elevato e esempio di stile a contrasto elevato XAML.

Anche se l'app non può cambiare i temi in fase di esecuzione, l'utente può (a partire da Windows 8.1). Ad esempio, un utente potrebbe abilitare un tema a contrasto elevato durante l'esecuzione dell'app usando il tasto ALT+MAIUSC+PrtScn. In questo caso, il sistema di risorse XAML ricalcocherà i valori delle risorse per qualsiasi utilizzo dell'estensione di markup {ThemeResource} . Risorse appropriate per il tema, ad esempio colori e pennelli, quindi usano i valori appropriati per il tema corrente, anche se non era l'app che richiedeva originariamente il tema.

Le risorse specifiche del tema sono in genere definite in un dizionario risorse separato in XAML. Questo dizionario risorse proviene dalla proprietà ThemeDictionary del resourceDictionary primario usato per i modelli di controllo. Il dizionario delle risorse di sistema predefinito per le risorse specifiche del tema è denominato ThemeResources.xaml. Questo file è disponibile nella cartella (Programmi)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP<SDK versione>\Generica da un'installazione di Windows Software Development Kit (SDK).

Note per le versioni precedenti

Windows 8.x Per impostazione predefinita, l'app viene eseguita usando il tema "Scuro" (nel file themeresources.xaml il nome della chiave per le risorse "Dark" è "Default").

Si applica a

Vedi anche