C# Windows Phone 8、主题管理器和主题资源

C# Windows Phone 8、主题管理器和主题资源,c#,wpf,windows-phone-8,themes,resourcedictionary,C#,Wpf,Windows Phone 8,Themes,Resourcedictionary,我正在尝试使用wp8中的管理器来更改一些默认样式。我有一个资源文件,其中包含我的颜色等定制 My ThemeResources.xml #FF2c5f8c 现在,在my App.xml im中将此设置为合并词典: 在我的App.cs中,在我的App构造函数中,我使用管理器: public应用程序() { //未捕获异常的全局处理程序。 未处理异常+=应用程序\u未处理异常; //标准XAML初始化 初始化组件(); //特定于电话的初始化 InitializePhoneApplicati

我正在尝试使用wp8中的管理器来更改一些默认样式。我有一个资源文件,其中包含我的颜色等定制

My ThemeResources.xml


#FF2c5f8c
现在,在my App.xml im中将此设置为合并词典:


在我的App.cs中,在我的App构造函数中,我使用管理器:

public应用程序()
{
//未捕获异常的全局处理程序。
未处理异常+=应用程序\u未处理异常;
//标准XAML初始化
初始化组件();
//特定于电话的初始化
InitializePhoneApplication();
//语言显示初始化
初始化语言();
//获取自定义主题
var rd=App.Current.Resources.MergedDictionaries[0];
//设置自定义主题,回退到黑暗
SetCustomTheme(rd,Theme.Light);
...
最后,在MainPage.xml中,我使用这个TestBrush,在meresources.xml中定义如下:


在我看来一切正常,但当我尝试运行应用程序时,出现以下异常:

$exception{System.Windows.Markup.XamlParseException:找不到名为/Key TestBrush[行:90位置:175]的资源

在Visual Studio designer中,它将正确显示颜色

有什么问题吗

编辑:
是的,meresources.xml文件的构建操作被设置为“Resource”。仍然是相同的问题。

从管理器自述文件()中读取:

“注意:不要在修改后的ThemeResources.xaml中放入任何其他内容,您以后将需要这些内容(如果将其放入MergedDictionary部分),因为过程的一部分是在设置主题后删除MergedDictionary。由于某些原因,如果不这样做,Phone Foreground笔刷将不会保持设置。”

我自己还没有尝试过,但我想如果您想保留TestBrush,那么您需要在一个单独的XAML文件中定义它。
否则,只需重新定义一个标准主题画笔并使用它即可。

从ThemeManager自述()读取:

“注意:不要在修改后的ThemeResources.xaml中放入任何其他内容,您以后将需要这些内容(如果将其放入MergedDictionary部分),因为过程的一部分是在设置主题后删除MergedDictionary。由于某些原因,如果不这样做,Phone Foreground笔刷将不会保持设置。”

我自己还没有尝试过,但我想如果您想保留TestBrush,那么您需要在一个单独的XAML文件中定义它。
否则,只需重新定义一个标准的主题画笔,并使用它即可。

任何人,我对此有点执着……任何人,我对此有点执着。。。。