[Windows Phone] 強制App執行於淺色或深色布景主題

[Windows Phone] 強制App執行於淺色或深色布景主題

在Windows Phone裡具有二種背景主題,分別為淺色或黑色,除此之外還可以設定多種的輔助顏色,使用者可以在手機設定裡進行調整。

image

 

而在開發App上就要特別注意到背景主題,通常如果在App上我們不特別調整樣式時,App在Run起來時會依照手機的背景主題及輔助顏色來自動化呈現最好的視覺配色效果,例如筆者直接建立一個PivotApp預設範本應用程式,接著用模擬器直接把它Run起來看看

 

(1)在深色背景主題下,文字會是白色

image

 

(2)切換為淺色背景主題下,文字就會是黑色

image

 

這也表示當我們在設計App時,必須考量到當使用者在淺色或深色背景主題下您的App所展示的效果,而通常在開發App時設計者會額外去定義一些特定的樣式,例如字型、字的顏色、圖示等等......,不當的設計會造成可能在淺色或深色背景主題下,導致字文看不見或是圖示配色怪異的現象。但如果我們希望App能強制執行於淺色或深色布景主題,也就是App本身與手機的背景主題設定是脫勾的,或是希望我們的App裡的一些設計不要因為換到不同背景主題而導致破壞的時,又該如何呢?目前並無內建的方法可以達到這樣的需求,但這世上總有很多高手好心人士(jeffwilcox)提供解決方案的,不多說我們來看看怎麼做

 

(1)以NuGet取得PhoneThemeManager套件安裝至專案裡 (http://www.nuget.org/packages/PhoneThemeManager)

image

 

(2)直接著在App.xaml.cs裡的App() 方法裡加入以下程式碼

ThemeManager.ToLightTheme();  //強制使用淺色背景主題

ThemeManager.ToDarkTheme();  //強制使用深色背景主題

 

如此一來您的App就不受使用者手機的設定背景主題所影響,達成強制執行於淺色或深色布景主題的效果( 請注意:這並不表示我們的App去改變了使用者手機的設定 )。

 

Ref:

PhoneThemeManager

PhoneThemeManager: allow your app to have the Light, Dark, or Inverted theme with 1 line of code

Windows Phone 主题设计决策

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18