C# Windows Phone 8更改重音和主题颜色

C# Windows Phone 8更改重音和主题颜色,c#,xaml,colors,windows-phone-8,windows-phone,C#,Xaml,Colors,Windows Phone 8,Windows Phone,我正在为Windows Phone 8创建一个应用程序,并且我希望以与其他应用程序(例如Skype)相同的方式更改主题颜色,而不考虑用户在电话操作系统中设置的主题 到目前为止,我仅通过访问XAML中的LayoutRoot元素来更改背景颜色: this.LayoutRoot.Background = new SolidColorBrush(Colors.White); 前景色: (App.Current.Resources["PhoneForegroundBrush"] as SolidColo

我正在为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。本教程适用于WP 7,但不适用于WP 8


谢谢大家!

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

它是用法语写的,但不要害怕


在Windows Phone 8中有一个更改颜色的示例(请检查方法DarkTheme())

Fabrice肯定是正确的。获取默认的PhoneAccentBrush并更改其颜色是一种方法

将此代码添加到应用程序构造函数的末尾,它将覆盖应用程序的WP8强调色:

    Resources.Remove("PhoneAccentColor");
    Resources.Add("PhoneAccentColor", Colors.Magenta);
    ((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Colors.Magenta;
当我们运行此代码并单击a
时,您可以看到新的强调色:


如果需要不同的画笔,请创建新画笔。无需费心更换现有的。有一天你可能会想使用那些内置的画笔

我建议您只需在应用程序中添加新资源并引用这些资源

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

在你的页面中,像这样引用它

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


谢谢您的帮助:)。我试着使用黑暗的方法,但是什么也没发生。我正在呼叫
DarkTheme()
初始化PhoneApplication()之后App.xaml.cs
中的code>。两种方法都试过了吗?第二种方法称为暗色,但颜色不同。我让Huyn方法不改变背景,但包括来自的单个文件,效果很好。我尝试了这一方法,通过使用System.Windows.Media添加
位于
App.xaml.cs
文件的顶部,并在
InitializeLanguage()之后将代码添加到
App()
,但无效。我也把它放在构造器的开头,但没有区别。这似乎适用于某些元素(如按钮和文本样式),但不适用于其他元素。应用程序栏、MessageBox和复选框不接受此颜色更改。可能还有另一种样式需要覆盖,或者其中一些项可能无法以相同的方式设置样式。ApplicationBar、SystemTray、MessageBox和其他一些是shell UI,与XAML样式无关。所以他们不会受到这种变化的影响。其中一些公开特定的API来配置用户界面,而另一些则不公开。我对Windows Phone环境相当陌生,请原谅,但是您的第一个代码片段应该放在XAML文件的什么位置?我得到错误
在类型“Application”中找不到可附加属性“Resources”