2017-06-16 3 views
-1

Je développe une application UWP et j'utilise Template 10. J'ai une image noire et une image blanche. Je veux quand l'utilisateur de choisir le thème sombre, montre l'image blanche, et lorsque l'utilisateur de choisir le thème de lumière montre l'image en noir, exemple:Afficher l'image en fonction du thème de l'application

if(dark theme) 
{ 
    white image; 
} 
else  
{ 
    black image; 
} 
+0

Je ne pense pas que ce soit une question. Je pense que vous pouvez lire les documents: https: //docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/xaml-theme-resources – lindexi

+0

Est-ce que [this] (https://stackoverflow.com/a/44600513/7331395) réponse fonctionne? –

Répondre

0

Vous pouvez obtenir RequestedTheme actuelle à l'aide this.RequestedTheme puis le comparer avec ElementTheme.Light ou ElementTheme.Dark

Méthode 1

if (this.RequestedTheme == ElementTheme.Light) 
    BackgroundImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/BlackImage.png")); 
else 
    BackgroundImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/WhiteImage.png")); 

Méthode 2

BackgroundImage.Source = (this.RequestedTheme == ElementTheme.Light)? new BitmapImage(new Uri("ms-appx:///Assets/BlackImage.png")): new BitmapImage(new Uri("ms-appx:///Assets/WhiteImage.png")); 
+0

Vous pouvez également prendre 'ElementTheme.Default' en compte. – Clemens

+0

@Clemens Comment pouvons-nous identifier le thème lorsque l'utilisateur utilise le thème par défaut? En outre, le thème par défaut peut être modifié au moment de l'exécution. –

+0

Aucune idée, je viens de voir que lorsque je démarre mon application de test, ce RequestedTheme est ElementTheme.Default. L'application devrait probablement avoir une idée de son thème par défaut. – Clemens