Application.RequestedTheme Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der die Hell-Dunkel-Einstellung für das Gesamtdesign einer App bestimmt, oder legt diesen fest.
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" .../>
Eigenschaftswert
Ein Wert aus der Enumeration. Der Anfangswert ist das Standarddesign, das der Benutzer in den Windows-Einstellungen festgelegt hat.
Beispiele
In diesem Beispiel wird gezeigt, wie sie das angeforderte Design in lokalen App-Einstellungen speichern und dann beim Neustart der App abrufen und anwenden.
<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;
}
}
Hinweise
Es gibt zwei integrierte Designs: "Hell" und "Dunkel". Standardmäßig wird Ihre App mit dem design ausgeführt, das der Benutzer in den Windows-Einstellungen festgelegt hat (Einstellungen > Personalisierung > Farben > Wählen Sie Ihren Standard-App-Modus aus). Sie können die RequestedTheme-Eigenschaft der App festlegen, um den Benutzerstandard außer Kraft zu setzen und anzugeben, welches Design verwendet wird.
Das Design kann nur festgelegt werden, wenn die App gestartet wird, nicht während der Ausführung. Der Versuch, RequestedTheme festzulegen, während die App ausgeführt wird, löst eine Ausnahme aus (NotSupportedException für Microsoft .NET-Code). Wenn Sie dem Benutzer die Option geben, ein Design auszuwählen, das Teil der App-Benutzeroberfläche ist, müssen Sie die Einstellung in den App-Daten speichern und anwenden, wenn die App neu gestartet wird. (Weitere Informationen zu App-Einstellungen finden Sie unter Speichern und Abrufen von Einstellungen und anderen App-Daten.
Sie können bestimmte Designwerte zur Laufzeit ändern, nachdem Application.RequestedTheme angewendet wurde, wenn Sie die FrameworkElement.RequestedTheme-Eigenschaft verwenden und Werte für bestimmte Elemente auf der Benutzeroberfläche festlegen.
Es gibt auch ein Design "HighContrast", das Systemwerte verwendet, aber Apps und App-Code verwenden eine andere Technik, um die App auf hohen Kontrast zu wechseln. Die RequestedTheme-Eigenschaft wird ignoriert, wenn der Benutzer im Modus mit hohem Kontrast ausgeführt wird. Weitere Informationen finden Sie unter Designs mit hohem Kontrast undXAML-Formatvorlage für hohen Kontrast.
Obwohl die App die Designs zur Laufzeit nicht wechseln kann, kann der Benutzer (ab Windows 8.1). Beispielsweise kann ein Benutzer ein Design mit hohem Kontrast aktivieren, während Ihre App ausgeführt wird, indem er die Tastenkombination ALT+UMSCHALT+PrtScn verwendet. In diesem Fall berechnet das XAML-Ressourcensystem die Ressourcenwerte für jede {ThemeResource}-Markuperweiterungsverwendung neu. Designgerechte Ressourcen wie Farben und Pinsel verwenden dann werte, die für das aktuelle Design geeignet sind, auch wenn es nicht die App war, die dieses Design ursprünglich angefordert hat.
Die designspezifischen Ressourcen werden in der Regel in einem separaten Ressourcenverzeichnis in XAML definiert. Dieses Ressourcenwörterbuch stammt aus der ThemeDictionaries-Eigenschaft des primären ResourceDictionary-Objekts , das für Steuerelementvorlagen verwendet wird. Das Standardsystemressourcenverzeichnis für designspezifische Ressourcen heißt ThemeResources.xaml. Diese Datei ist im Ordner (Programme)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP<SDK version>\Generic aus einer Installation des Windows Software Development Kit (SDK) verfügbar.
Hinweise zu früheren Versionen
Windows 8.x Standardmäßig wird Ihre App mit dem Design "Dark" ausgeführt (in der Datei themeresources.xaml lautet der Schlüsselname für die "Dark"-Ressourcen "Standard").
- Unter Windows führt das Festlegen von RequestedTheme auf ElementTheme.Default immer dazu, dass "Dunkel" das Design ist.
- Auf Windows Phone führt die Verwendung des Werts ElementTheme.Default zu einer Abfrage für das Systemdesign, wie vom Benutzer festgelegt.