根据应用主题显示图像(深色/浅色主题)

时间:2017-06-22 08:34:09

标签: c# uwp uwp-xaml

我正在开发一个UWP应用程序,我正在使用template10。我有两个图像,一个是白色,另一个是黑色。我希望在浅色主题中显示黑色图像,在黑暗主题中显示白色图像。我有这段代码:

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

但是,当我选择光主题图像时,不要出现!但是当我选择黑暗主题时,会出现白色图像。

1 个答案:

答案 0 :(得分:0)

如果我们未将ElementTheme.LightElementTheme.Dark设置为FrameworkElement.RequestedTheme,则会始终返回ElementTheme.Default。因此,无论ApplicationThemeLight,您的图片都会设置为WhiteImage。

应用中的RequestedTheme,可以获取或设置一个值,用于确定应用整体主题的明暗偏好。它返回枚举的ApplicationTheme。它包括LightDark。我们应该能够使用App.Current.RequestedTheme来获取应用的当前ApplicationTheme

例如:

var AppRequestedTheme = App.Current.RequestedTheme.ToString();
if (AppRequestedTheme == "Light")
    Image.Source = new BitmapImage(new Uri("ms-appx:///Assets/BlackImage.png"));
else
    Image.Source = new BitmapImage(new Uri("ms-appx:///Assets/WhiteImage.png"));