根据用户在手机上选择的主题,我想改变矩形的颜色。
当用户将设备的主题颜色设置为亮矩形时,EG.应该是蓝色,而当主题设置为暗时,则应该是灰色。
有什么想法吗?
谢谢
发布于 2011-07-11 16:04:06
我编写了一个自定义资源字典实现,它在运行时选择另一个字典而不影响性能,并在Visual设计器中工作。你会像这样使用它:
<Application.Resources>
<custom:ThemeResourceDictionary>
<custom:ThemeResourceDictionary.LightResources>
<ResourceDictionary Source="/ThemeManagement;component/Resources/Light.xaml" />
</custom:ThemeResourceDictionary.LightResources>
<custom:ThemeResourceDictionary.DarkResources>
<ResourceDictionary Source="/ThemeManagement;component/Resources/Dark.xaml" />
</custom:ThemeResourceDictionary.DarkResources>
</custom:ThemeResourceDictionary>
</Application.Resources>其中Light.xaml和Dark.xaml将包含具有相同名称的资源。
您可以获得代码并阅读更多关于它的在我的博客上。
发布于 2011-07-11 14:07:08
这类事情将能够确定主题设置为什么(黑暗还是光明)。您可能希望将其构建到可以绑定到的属性中以供您的画笔使用。
Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"];
if (v == System.Windows.Visibility.Visible)
{
// set your brush to blue
}
else
{
// set your brush to grey
}如果需要考虑到这一点,也可以使用PhoneAccentBrush获取用户选定的重音颜色。
https://stackoverflow.com/questions/6651312
复制相似问题