寫在前面:做了N年的開發工作,到頭來發現自己並沒有積累下來點什麼.遇到問題就去goole,baidu,呃現在貌似用360so比較多,結果呢?查完就用,用完就"扔".還是要一點點積累. 之前寫過一點隨筆,但總是虎頭蛇尾草草了事.這次可能要玩真的了,於是新加一個[Tips]分類,慢慢回想....把昨天,今天用到的一些技術點寫下來. 一來供各位看官參考,二來自己備查.
在Windows Phone上幾乎所有手機出廠時會預設Theme為Dark(深色). 這樣在AMOLED的螢幕上有助於節省電能.
但是,在Windows Phone內建的App,比如Outlook(WP7上Hotmail),Office和Xbox Live,就沒有使用系統設定的背景色.而會使用白色的背景搭配深色的文字,看上去就像是Light(淺色)的感覺.
基於這一點在我們自己的應用中也可以現實這樣的效果,無視系統設定強制將背景色改為我們需要的.Jeff Wilcox 給我們提供了這樣一個類庫(PhoneThemeManager)來實現這個功能,原文見http://www.jeff.wilcox.name/2012/01/phonethememanager/.
我們先來看看效果
這四圖分別為原始系統設定,程式運行時,點擊"ToDark"和點擊"ToLight"時.可見ThemeManager在程式運行時也可進行設定.
使用起來則是非常簡單方便
首先當然是安裝程式包添加引用,上面的介紹連結裡有這裡不再贅述.
程式碼中使用很簡單,只需要在App建構函式中添加一行調用即可:
App建構函式public App(){ // Global handler for uncaught exceptions. UnhandledException += Application_UnhandledException; // Standard XAML initialization InitializeComponent(); // Phone-specific initialization InitializePhoneApplication(); // Language display initialization InitializeLanguage(); ThemeManager.ToLightTheme(); }
下面是兩個Button中的代碼,應該沒有人會無聊到在應用內去切換背景色,這裡也只是做了個測試,
Buttonprivate void btnToDark_Tap(object sender, System.Windows.Input.GestureEventArgs e){ ThemeManager.ToDarkTheme();}private void btnToLight_Tap(object sender, System.Windows.Input.GestureEventArgs e){ ThemeManager.ToLightTheme();}
另外,Theme Manager中還提供了其他的一些功能,讀者可以去深入探研.