2009-07-11 114 views
1

好吧,我正在研究一个应用程序,它允许您在运行时切换主题。到目前为止,所有的控件都很好,什么都没有。但是,我的Window对象不会应用任何基础项目。以下是我的一个资源字典中的xaml示例。WPF主题的动态窗口背景

<SolidColorBrush x:Key="GrayBrush" Color="Gray" /> 
<SolidColorBrush x:Key="OrangeBrush" Color="Orange" /> 

<!-- Window Styles --> 
<Style TargetType="{x:Type Window}"> 
    <Setter Property="Background" Value="{DynamicResource GrayBrush}" /> 
</Style> 

我的主要主题在我的app.xaml资源列表中也有上面的代码片段。现在,当应用程序启动时,不会应用背景,也不会在运行时更改资源字典。我想我要么失去了一些东西,要么就是不行。

我正在使用.net 3.5,我只是从框架使用标准的窗口对象,所以我不是从任何其他基本控件继承。我想要做的是不必在窗口对象上指定样式或其他属性,因为我还允许您切换到包含的主题,如Aero,Luna,Classic等。

我只是不能为我的生活得到使用风格的窗口。

唯一可行的,但切换时不会改变的是,如果我设置了Style或Background属性,这是我不想做的。

此外,当我更改主题,这是它是如何做:

Application.Current.Resources.MergedDictionaries.Clear(); 
Application.Current.Resources.MergedDictionaries.Add(dictionary); 

本词典是基于无论从.NET的东西还是我自己选择的主题加载的资源字典。这一切似乎工作正常,只是无法让窗口工作。

任何帮助将不胜感激。

谢谢。

任何想法。

更新:我真正想要的是让窗口对象更改而不必在窗口上更改或设置任何其他属性的方法。如果我必须添加一个样式标签或不适用于我的应用程序中的所有窗口对象,这种方式会失败。

+0

你让你的窗口级别的主题工作? – 2010-05-04 13:33:50

+0

[如何在app.xaml中设置默认WPF窗口样式?](http://stackoverflow.com/questions/431940/how-to-set-default-wpf-window-style-in-app-xaml ) – 2016-12-22 19:17:14

回答

-1

这里看看......

http://www.codeplex.com/wpfthemes

如果你下载的源代码,你会发现他们已经实现动态主题,也是所有的主题是免费使用的,那里有一些非常不错的那些。