的Windows Phone 8更改口音和主题色(Windows Phone 8 Change Ac

2019-07-18 17:56发布

我创建的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;

我不知道为什么我不能改变PhoneBackgroundBrushPhoneAccentBrush ,我已经试着用搜索引擎解决方案,但它们只与Windows Phone 7的SDK.The教程工作在这里工作在WP 7而不是WP 8。

谢谢!

Answer 1:

法布里斯绝对是正确的轨道上。 获取默认PhoneAccentBrush并改变它的颜色是要走的路。

此代码添加到您的应用程序的构造函数的结束,它会覆盖WP8的强调文字颜色为您的应用程序:

    Resources.Remove("PhoneAccentColor");
    Resources.Add("PhoneAccentColor", Colors.Magenta);
    ((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Colors.Magenta;

当我们运行这段代码并单击<Button />您可以看到新的强调色:



Answer 2:

如果你想不同的画笔,然后创建新的笔刷。 没有必要去通过的麻烦,以取代现有的。 有一天,你可能需要使用这些内置的刷子。

我建议只是增加新的资源,您的应用程序和引用这些。

<Application.Resources>
    <SolidColorBrush x:Key="AppAccentBrush" Color="#012345"/>
</Application.Resources>

在您的网页,引用它像这样

<TextBlock Text="Custom Accent" Style="{StaticResource PhoneTextNormalStyle}"
           Foreground="{StaticResource AppAccentBrush}"/>


Answer 3:

我看到一个博客帖子前几天:

http://www.rudyhuyn.com/blog/2013/01/18/forcer-un-theme-sous-windows-phone-8/

这是一个在法国,但不要害怕。

有一个样本更改Windows电话8的颜色(检查方法DarkTheme())



文章来源: Windows Phone 8 Change Accent and Theme Colour