1. 程式人生 > >WPF在在設計模式,使用動態樣式

WPF在在設計模式,使用動態樣式

源文件 引用 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在在設計模式,使用動態樣式