Windows Phone 修改系統定義的資源顏色


【問題的背景】

相信有些經驗的WP研發同學都會遇到下面的問題:

  1. 系統控件以及WPToolkit中大量使用了PhoneAccentBrush這個畫刷(這個畫刷定義的是系統的強調色,即用戶選擇的主題顏色),

    以致為了滿足UI設計的需求,為了一個色值而定義了不下100行的xaml代碼,其中只有一行用來修改顏色。

2、使用Textblock的時候忘記設定Foreground導致用戶把主題切換到白色的時候,很多字看不清了。

   

下面是摘自WPToolkit中控件模版的定義:

遇到這類的還算好改但是下面這樣的就可以直接噴血了:

   

【解決辦法】

   

之前筆者都是用blend編輯模版的copy來實現需求(華麗的展示了很好的Xaml基礎=。=),知道有一天突然想到,我們能否把系統這個資源改了呢……

筆者進行了幾種嘗試,最終用下面的代碼解決了這個問題:

   

MainColor1和DefaulitForegroundColor是我定義在程序資源字典中的一個Color類型的資源:

   

   

我們只需把OverwriteSystemColor 放到App的構造函數最后面即可。

   

如此取巧的方式便偷天換日搬修改了系統定義的色值,省去了很多之前一直很麻煩的事情!

 

   

關於WP的交流歡迎加入QQ群:182659848


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM