Application.RequestedTheme Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui détermine la préférence clair-foncé pour le thème global d’une application.
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" .../>
Valeur de propriété
Valeur de l’énumération. La valeur initiale est le thème par défaut défini par l’utilisateur dans les paramètres Windows.
Exemples
Cet exemple montre comment enregistrer le thème demandé dans les paramètres de l’application locale, puis le récupérer et l’appliquer lors du redémarrage de l’application.
<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;
}
}
Remarques
Il existe deux thèmes intégrés : « Light » et « Dark ». Par défaut, votre application s’exécute à l’aide du thème défini par l’utilisateur dans les paramètres Windows (Paramètres > Couleurs > de personnalisation > Choisissez votre mode d’application par défaut). Vous pouvez définir la propriété RequestedTheme de l’application pour remplacer la valeur par défaut de l’utilisateur et spécifier le thème utilisé.
Le thème ne peut être défini qu’au démarrage de l’application, et non pendant son exécution. La tentative de définition de RequestedTheme pendant l’exécution de l’application lève une exception (NotSupportedException pour le code Microsoft .NET). Si vous donnez à l’utilisateur la possibilité de choisir un thème qui fait partie de l’interface utilisateur de l’application, vous devez enregistrer le paramètre dans les données de l’application et l’appliquer lors du redémarrage de l’application. (Pour plus d’informations sur les paramètres d’application, consultez Stocker et récupérer des paramètres et d’autres données d’application).
Vous pouvez modifier des valeurs de thème spécifiques au moment de l’exécution après l’application de Application.RequestedTheme, si vous utilisez la propriété FrameworkElement.RequestedTheme et définissez des valeurs sur des éléments spécifiques dans l’interface utilisateur.
Il existe également un thème « HighContrast » qui utilise des valeurs système, mais les applications et le code d’application utilisent une technique différente pour basculer l’application vers un contraste élevé. La propriété RequestedTheme est ignorée si l’utilisateur s’exécute en mode contraste élevé. Consultez Thèmes à contraste élevé et Exemple de style à contraste élevé XAML.
Bien que l’application ne puisse pas changer les thèmes au moment de l’exécution, l’utilisateur peut (en commençant par Windows 8.1). Par exemple, un utilisateur peut activer un thème à contraste élevé pendant l’exécution de votre application, à l’aide du raccourci touche Alt+Maj+PrtScn. Si cela se produit, le système de ressources XAML recalcule les valeurs de ressource pour toute utilisation de l’extension de balisage {ThemeResource} . Les ressources appropriées au thème, telles que les couleurs et les pinceaux, utilisent ensuite des valeurs appropriées pour le thème actuel, même si ce n’est pas l’application qui a demandé ce thème à l’origine.
Les ressources spécifiques au thème sont généralement définies dans un dictionnaire de ressources distinct en XAML. Ce dictionnaire de ressources provient de la propriété ThemeDictionaries du ResourceDictionary principal utilisé pour les modèles de contrôle. Le dictionnaire de ressources système par défaut pour les ressources spécifiques à un thème est nommé ThemeResources.xaml. Ce fichier est disponible dans le dossier (Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP<SDK version>\Generic à partir d’une installation du Kit de développement logiciel (SDK) Windows.
Remarques pour les versions précédentes
Windows 8.x Par défaut, votre application s’exécute à l’aide du thème « Sombre » (dans le fichier themeresources.xaml, le nom clé des ressources « Sombres » est « Par défaut »).
- Sur Windows, la définition de RequestedTheme sur ElementTheme.Default entraîne toujours le thème « Sombre ».
- Sur Windows Phone, l’utilisation de la valeur ElementTheme.Default entraîne une requête pour le thème système, tel que défini par l’utilisateur.