在运行时在另一个字典中加载特定于主题的Silverlight资源字典

时间:2014-12-15 12:58:27

标签: c# silverlight dynamic resourcedictionary hierarchical

我在Silverlight(SL5)UI样式中面临一个奇怪的问题。我有两个文件(资源字典)包含相同的样式键(不同的颜色)。在我的资源(例如buttons.xaml)中,我希望按钮样​​式在运行时根据配置特定的密钥拾取颜色。问题是 - 我必须在buttons.xaml中的合并字典中定义一个资源字典(否则它会为未找到的密钥抛出一个xaml解析异常)。按钮从合并字典中定义的资源字典中拾取颜色,之后如果我尝试通过清除合并的字典并添加另一个字体来改变颜色 - 它不起作用(也许xaml已经编译成baml)。目前我所有的资源字典都将属性设置为 - {Build action - Page,Copt to output directory - Do not copy,Custom Tool - MSBuild:Compile}。如果更改Build动作属性或CustomTool属性使其工作,任何人都可以帮助我。我希望在运行时解析按钮中的样式键。

非常感谢任何帮助。

先谢谢

1 个答案:

答案 0 :(得分:0)

我能够通过删除自定义工具属性值(将其设置为空)然后从buttons.xaml中删除合并的字典来解决此问题。从App.xaml.cs我将添加一个对应于所需颜色的资源字典。一个小的副作用是视图的设计者在xaml中添加代码时无法解析样式键。希望它为某人节省一些时间:)