WPF在在設計模式,使用動態樣式
阿新 • • 發佈:2018-03-19
源文件 引用 HA 建立 true ear app pac des
1.問題分析
WPF有時候要用到主題樣式,比如顏色主題(紅色、黃色之類的)通常是key相同,而value不同,比如會這麽寫:
Background="{DynamicResource BackgroundColor}"
主題切換通常在不同的資源文件xaml裏面,這時候,如果想在設計時(設計視圖)裏看看主題,往往得寫些臨時代碼,當編譯的時候還得把臨時代碼刪除。
如果能夠在設計時,看到不同的 DynamicResource,這樣就能夠實時地看到效果。
2.解決方法
在項目目錄下的Properties裏,建立一個DesignTimeResources.xaml文件,文件名稱不能改。這是blend裏面的特性。
有了這個文件,將樣式資源文件xaml,引用到DesignTimeResources.xaml裏。在設計視圖就可以看到DynamicResource的樣式了。
文件目錄如下:
效果如下,即使用DynamicResource也能在設計視圖下看到效果:
改變視圖的邏輯
Resources.MergedDictionaries.Clear(); var yellowUiUri = new Uri("pack://application:,,,/WPF設計時使用動態樣式;component/Color/YellowColor.xaml"); Resources.MergedDictionaries.Add(new ResourceDictionary { Source = yellowUiUri });
3.參考網址
http://www.wpfsharp.com/2012/02/02/how-to-load-a-resourcedictionary-at-design-time-in-wpf/
4.源碼下載
https://files.cnblogs.com/files/lizhijian/WPF%E8%AE%BE%E8%AE%A1%E6%97%B6%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%E6%A0%B7%E5%BC%8F.rar
感謝閱讀,希望可以幫到你。http://www.cnblogs.com/lizhijian/
WPF在在設計模式,使用動態樣式