【发布时间】:2012-02-26 10:24:41
【问题描述】:
在 WP7 应用程序中,使应用程序栏中的图标匹配当前主题(浅色/深色)的首选方法是什么?我真的需要使用“hack”来检测当前主题,并根据它设置图标,还是有更好的方法?
【问题讨论】:
标签: silverlight windows-phone-7 themes
在 WP7 应用程序中,使应用程序栏中的图标匹配当前主题(浅色/深色)的首选方法是什么?我真的需要使用“hack”来检测当前主题,并根据它设置图标,还是有更好的方法?
【问题讨论】:
标签: silverlight windows-phone-7 themes
如果您使用默认(白色)图像,或者创建类似的透明透明的白色 PNG 图像,那么您无需执行任何操作;操作系统会为您处理。
【讨论】:
只需使用 PhoneDarkThemeVisibility 资源:
<Image Source="pathToLightImage.png" Visibility="{StaticResource PhoneLightThemeVisibility}" />
<Image Source="pathToDarkImage.png" Visibility="{StaticResource PhoneDarkThemeVisibility}" />
根据用户设置,仅显示两项中的一项。它在芒果中可用。
另一种选择是仅使用一个配置了 OpacityMask 的图像。您可以通过here 了解更多信息。
【讨论】:
我建议你存储两组图标,深色和浅色,并在后面的代码中动态创建应用栏。然后让用户选择他们想要的主题并使用简单的 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
}
如果这有帮助,请告诉我。
【讨论】: