【問題的背景】
相信有些經驗的WP研發同學都會遇到下面的問題:
-
系統控件以及WPToolkit中大量使用了PhoneAccentBrush這個畫刷(這個畫刷定義的是系統的強調色,即用戶選擇的主題顏色),
以致為了滿足UI設計的需求,為了一個色值而定義了不下100行的xaml代碼,其中只有一行用來修改顏色。
2、使用Textblock的時候忘記設定Foreground導致用戶把主題切換到白色的時候,很多字看不清了。
下面是摘自WPToolkit中控件模版的定義:
遇到這類的還算好改但是下面這樣的就可以直接噴血了:
【解決辦法】
之前筆者都是用blend編輯模版的copy來實現需求(華麗的展示了很好的Xaml基礎=。=),知道有一天突然想到,我們能否把系統這個資源改了呢……
筆者進行了幾種嘗試,最終用下面的代碼解決了這個問題:
MainColor1和DefaulitForegroundColor是我定義在程序資源字典中的一個Color類型的資源:
我們只需把OverwriteSystemColor 放到App的構造函數最后面即可。
如此取巧的方式便偷天換日搬修改了系統定義的色值,省去了很多之前一直很麻煩的事情!
關於WP的交流歡迎加入QQ群:182659848