在WP7应用程序中,使应用程序栏中的图标与当前主题(亮/暗)匹配的首选方法是什么?我真的需要使用“黑客”来检测当前主题,并根据它设置图标,还是有更好的方法?
答案 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
}
如果有帮助,请告诉我。