回答
密切關注依賴關係,以便資源不會嘗試引用尚未定義的其他資源。查看Merged Dictionaries上的部分以查看何時加載的內容。此外,您將不得不將所有資源從App.xaml移到通用資源字典中,因爲當您將應用程序資源重置爲新的合併字典時,它們將被清除。
更新只在重新創建元素時才起作用,因此需要導航才能應用更改。
private void LoadStyles(StyleType styleType)
{
ResourceDictionary merged = new ResourceDictionary();
ResourceDictionary generic = new ResourceDictionary();
ResourceDictionary theme = new ResourceDictionary();
generic.Source = new Uri("ms-appx:/Common/StandardStyles.xaml");
switch (styleType)
{
default:
case StyleType.Custom1: { theme.Source = new Uri("ms-appx:/Common/AppStyles-Custom1.xaml"); break; }
case StyleType.Custom2: { theme.Source = new Uri("ms-appx:/Common/AppStyles-Custom2.xaml"); break; }
case StyleType.Custom3: { theme.Source = new Uri("ms-appx:/Common/AppStyles-Custom3.xaml"); break; }
}
merged.MergedDictionaries.Add(generic);
merged.MergedDictionaries.Add(theme);
App.Current.Resources = merged;
//this.ApplyTemplate(); <- doesn't seem to reapply resources to layout tree
}
我試圖做到這一點,但主題沒有得到應用,除非我在App.xaml.cs中設置它。如果我在其他地方設置它不起作用。有沒有辦法立即應用它? –
以下文章可以幫助:
一般來說,你需要從可能的另一個組件,新的資源來代替App.Resources.MergedDictionaries
在運行時,在列表重新應用模板在MainWindow
的級別,一定要有DynamicResource
在你的風格assignements。下面的算法可以幫助你:
- 清潔
App.Resources.MergedDictionaries
- 填寫
App.Resources.MergedDictionaries
新集ResourceDictionary
- 再塗窗口模板與
mainWindow.ApplyTemplate();
希望這有助於。
適用於Windows 8 WinRT? –
其可能性。我前段時間玩過這個遊戲,並且開始工作。如果我找到代碼,我將分享 – kindasimple
- 1. 全球使用Wordpress主題的CSS樣式「a」標籤
- 2. WPF XAML全球化
- 3. 全球綁定樣式
- 4. 壁球git從主題分支提交
- 5. 增加Jekyll主題的全球寬度
- 6. JavaFX webview全球CSS黑暗主題
- 7. 樣式和主題
- 8. 用球拍交換球對
- 9. 優雅的方式交換主題樣式表,無需重新加載頁面
- 10. 全球資源不適風格XAML
- 11. JavaScript全球置換
- 12. 交換Css樣式表
- 13. 將XAML樣式轉換爲樣式背後的代碼?
- 14. 「全球主要」在大會
- 15. XAML邊框樣式
- 16. XAML樣式綁定
- 17. 複製XAML樣式
- 18. XAML組合樣式
- 19. ajaxcontroltoolkit tabcontainer樣式主題css
- 20. 允許樣式爲主題
- 21. ASP.NET主題樣式呈現
- 22. 樣式JQuery手機主題
- 23. 便攜式XAML樣式
- 24. Widget標題的樣式Wordpress,Headway主題
- 25. 圖像自動提交的形式內全球形式
- 26. XAML主題Visual Studio 2012
- 27. Javascript全球變量問題
- 28. MVC3全球化問題
- 29. ScriptManager全球化問題
- 30. Python的問題與全球?
自定義主題,不支持(至少知道了)http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/ba77cedb-b90b-49a2-af00-aba9e14dcef2 –