文章出處

重載默認主題中的值,修改ProgressBar的前景色

    做一個小項目時,用到 ProgressBar添加一個加載效果,但是背景不是白色的,調試時發現自己選的主題色與背景色相近,特別不清晰,加載效果幾乎看不見,于是就要修改ProgressBar的前景色,在修改的過程中,發現直接修改 Foreground和定義Background沒有效果,沒什么用,ProgressBar的前景色是你選擇的主題顏色,既然知道了主題色就是ProgressBar的顏色,接下來就是重載主題色,簡單來說就是在項目中重新定義一個顏色,覆蓋掉主題色,其實就是定義一個與系統資源字典中相同的樣式,覆蓋掉系統定義即可。 其他的需要重載默認主題中樣式的做法與此類似

  1. 在某個頁面中重載
  2. 在整個項目中重載
    1. 在App.xaml中重載
    2. 在自定義的資源字典中重載,需要將自定義的資源字典添加到

這里只講解最后一個,在自定義的資源字典中重載,其實都差不多,不過個人覺得,這種方式更常用。

首先創建一個資源字典文件,然后再其中添加對系統主題色的重載(這里只是重載的ProgressBar的Foreground屬性,即ProgressBar的顏色)

<!-- Global Overrides -->

<ResourceDictionary.ThemeDictionaries>

<ResourceDictionary x:Key="Default">

<x:String x:Key="ProgressBarIndeterminateForegroundThemeBrush">Pink</x:String>

</ResourceDictionary>

</ResourceDictionary.ThemeDictionaries>

注:這里的顏色不能隨意設置,需要設置為主題色中有的顏色之一,最初設置的White 白色,結果沒有任何效果

如果在App.xaml文件中或在頁面中定義的話,添加以上代碼就夠了,如果在自定義資源字典文件中定義的話,需要在App.xaml文件中包含自定義的資源字典文件,在App.xaml文件添加以下代碼即可 (source需要設置為自定義資源字典文件的路徑)

<ResourceDictionary>

<ResourceDictionary.MergedDictionaries>

<ResourceDictionary Source="/Styles/CustomStyles.xaml"></ResourceDictionary>

</ResourceDictionary.MergedDictionaries>

</ResourceDictionary>

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()