2012-06-22 36 views
4

我想在WPF中實現ASP.Net類型的主題。用戶可以選擇各種預定義的主題,並可以切換到另一個主題。如何在wpf中實現主題

爲了實現這個,我嘗試了爲每個主題創建不同的resourcedictionary,並用key存儲所需的樣式。所有主題中的按鍵集合都是相同的,但其定義各不相同。

我使用下面的代碼來切換主題上點擊:

var theme = Application.LoadComponent(uri) as ResourceDictionary; 
Application.Current.Resources.MergedDictionaries.Clear(); 
Application.Current.Resources.MergedDictionaries.Add(theme); 

在所有頁/用戶控件/窗口我已經設置靜態資源和應用相應的鍵。 當我切換到另一個主題時,它僅在UI上的下一個事件之後應用

如果我將更改StaticResource設置爲DynamicResource,則立即應用它。

請分享你的想法來實現這與StaticResource?

回答

0

下載預定義的主題不幸的是,你不能用靜態資源實現這一目標。使用StaticResource的控件needs to be reloaded after switching to another Theme爲要應用的新資源。

您可能想要創建功能以在更改主題後重新加載當前頁面。