如何根据当前主题使应用程序栏中的图标发生变化?

时间:2011-03-29 03:34:37

标签: silverlight windows-phone-7 themes

在WP7应用程序中,使应用程序栏中的图标与当前主题(亮/暗)匹配的首选方法是什么?我真的需要使用“黑客”来检测当前主题,并根据它设置图标,还是有更好的方法?

3 个答案:

答案 0 :(得分:8)

如果使用默认(白色)图像,或创建透明白色的类似PNG图像,则无需执行任何操作;操作系统为您处理它。

答案 1 :(得分:3)

只需使用PhoneDarkThemeVisibility资源:

<Image Source="pathToLightImage.png" Visibility="{StaticResource PhoneLightThemeVisibility}" />

<Image Source="pathToDarkImage.png" Visibility="{StaticResource PhoneDarkThemeVisibility}" />

根据用户设置,只会显示两个项目中的一个。它在芒果有售。

另一种选择是仅使用配置了OpacityMask的一个图像。您可以找到有关它的更多信息here

答案 2 :(得分:1)

我建议您存储两组图标,黑暗和浅色,并在后面的代码中动态创建应用栏。然后让用户选择他们想要的主题,并使用简单的if ... else语句处理加载的图标。

现在,为了确定用户使用的主题,您可以查看“phonelightthemevisibility”资源。检查该资源是否可见。

Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"];
if(v = System.Windows.Visibility.Visible)
{
   //Use icons for light theme
}
else
{
   //Use icons for dark theme
}

如果有帮助,请告诉我。