我创建的Windows Phone 8的应用程序,我想不论改变通过在手机操作系统用户设置的主题的主题色彩,以同样的方式,其他应用程序做到这一点(例如Skype的)。
到目前为止,我只设法改变背景颜色,通过访问XAML的LayoutRoot元素:
this.LayoutRoot.Background = new SolidColorBrush(Colors.White);
和前景颜色:
(App.Current.Resources["PhoneForegroundBrush"] as SolidColorBrush).Color = Colors.Green;
但是下面的在Windows Phone 8不工作:
(App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White;
(App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush).Color = Colors.Yellow;
我不知道为什么我不能改变PhoneBackgroundBrush
或PhoneAccentBrush
,我已经试着用搜索引擎解决方案,但它们只与Windows Phone 7的SDK.The教程工作在这里工作在WP 7而不是WP 8。
谢谢!
法布里斯绝对是正确的轨道上。 获取默认PhoneAccentBrush并改变它的颜色是要走的路。
此代码添加到您的应用程序的构造函数的结束,它会覆盖WP8的强调文字颜色为您的应用程序:
Resources.Remove("PhoneAccentColor");
Resources.Add("PhoneAccentColor", Colors.Magenta);
((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Colors.Magenta;
当我们运行这段代码并单击<Button />
您可以看到新的强调色:
如果你想不同的画笔,然后创建新的笔刷。 没有必要去通过的麻烦,以取代现有的。 有一天,你可能需要使用这些内置的刷子。
我建议只是增加新的资源,您的应用程序和引用这些。
<Application.Resources>
<SolidColorBrush x:Key="AppAccentBrush" Color="#012345"/>
</Application.Resources>
在您的网页,引用它像这样
<TextBlock Text="Custom Accent" Style="{StaticResource PhoneTextNormalStyle}"
Foreground="{StaticResource AppAccentBrush}"/>
我看到一个博客帖子前几天:
http://www.rudyhuyn.com/blog/2013/01/18/forcer-un-theme-sous-windows-phone-8/
这是一个在法国,但不要害怕。
有一个样本更改Windows电话8的颜色(检查方法DarkTheme())