我正在为Windows Phone 7制作一个应用程序(使用Visual Studio 2010 Express for Windows Phone RTM),我在主题(亮/暗)意识方面遇到了一些问题,尤其是颜色问题。
基本上我想在使用静态资源颜色/画笔时做同样的事情。 例如,如果我声明:
<Border Background="{StaticResource PhoneBackgroundBrush}" />
边框的黑色背景为黑色主题,白色为浅色主题。 所以,我想要一个资源...让我们说MyBackgroundBrush,并将使用如下:
<Border Background="{StaticResource MyBackgroundBrush}" />
而且,对于黑暗主题它可能是蓝色的,而对于光来说则是红色。
所以我的问题是,我如何定义这样的资源和行为?
答案 0 :(得分:1)
见question about theme detection。这将为您提供一种检测主题的方法,然后通过在应用程序的资源中替换它来使用该信息来设置背景画笔:
App.Current.Resources.Remove("MyPhoneBrush");
App.Current.Resources.Add("MyPhoneBrush", value);
您可以使用xaml中的名称定义两个彩色画笔,然后将其中一个设置为MyPhoneBrush的运行时值。你可能想把它们中的一个设置为默认值,所以事情也在设计时工作......