2009-07-11 112 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

如果你下載的源代碼,你會發現他們已經實現動態主題,也是所有的主題是免費使用的,那裏有一些非常不錯的那些。