【发布时间】:2010-08-16 02:05:49
【问题描述】:
我有一个用于试验的简单 WPF 应用程序。
我在单独的 xaml 文件中定义了两个主题,将 xaml 更改为指向它们工作正常。顺便说一句,在 xaml 中,我使用的是直接的 ResourceDictionary 元素,而不是 ResourceDictionary.MergedDictionaries 元素。
我想让用户选择要使用的主题,所以我在后面的代码中重置了源属性 - 但是调试器告诉我我已经成功设置了应用程序外观不会改变的值。
那么,如何在运行时成功应用主题?
编辑:这就是我在 xaml 中声明我的“风格”的方式:
<Window x:Class="WpfUI.winMain">
<Window.Resources>
<ResourceDictionary Source="Themes\Blah.xaml"></ResourceDictionary>
</Window.Resources>
// The windows grid and other controls...
</Window>
【问题讨论】:
-
创建一个新的 ResourceDictionary(在代码中)并调用 ApplyTemplate() 成功地应用了主题/样式 - 但不是在所有控件上。