更改Windows Phone 7的主题感知应用程序的颜色



我想根据用户在手机上选择的主题改变矩形的颜色。

当用户将设备的主题颜色设置为浅色时,矩形应该是蓝色的,当主题设置为深色时,矩形应该是灰色的。

任何想法?

谢谢

这种东西将能够确定主题设置为什么(暗或亮)。你可能想把它构建成一个属性,你可以绑定到你的画笔。

Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"];
if (v == System.Windows.Visibility.Visible)
{
    // set your brush to blue
}
else
{
    // set your brush to grey
}

如果你需要考虑到这一点,你也可以用PhoneAccentBrush获得用户选择的强调色。

我编写了一个自定义资源字典实现,它在运行时选择另一个字典而不影响性能,并在Visual Studio设计器中工作。你可以这样使用它:

<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.xamlDark.xaml包含相同名称的资源。

你可以在我的博客上获得代码并阅读更多关于它的信息。

最新更新