在Windows Phone上为了要达到省电的效果,所以大部份的手机出厂时预设的Theme大多会采用Dark Theme。
而也应该只有少数的使用者会把Theme改为Light Theme(一来麻烦,二来耗电)。
不过,在Windows Phone里某些内建的App,像是Hotmail和Xbox Live,就无视使用者的设定,会使用白色的背景搭配深色的文字(类似Light Theme的感觉)。
我们自己开发的App也能做到一样的效果吗?? 当然可以~~只要请Designer替我们的App量身打造自己的一套Style(包含每个控制项的Template)就行了!!
那~~~如果没有强力的Designer支援的话怎么办呢?? 没关系,救星来了!!
国外有个好心人,帮Developer们写好了一个超方便的Library,只要一行程式码,就可以让我们不用自己动手去修改控制项的Template,而能「有条件」的在App中决定要使用Dark Theme或是Light Theme,而且无视使用者的手机设定。
该作者的原始文章连结在此:http://www.jeff.wilcox.name/2012/01/phonethememanager/
而这个传说中的好物,也可以透过NuGet来下载安装喔!!
透过NuGet安装之后,专案中就会自动加入该Library的参考了!!
为了要证明没有造假,所以我在MainPage.xaml中加入一些控制项:
接下来,就是动手写Code的时候啦,请打开App.xaml.cs档,并且依照下面的范例修改它的建构子:
最后,当然就是见证奇迹的时刻了!!请用力的按下F5进行Debug~ 当当!!! 这就是传说中的Light Theme啊!! 为了证明没有作弊,再附上一张设定页的截图:
不过,为什么前面会说是「有条件」的呢?因为使用这个方式,只能修改一般控制项的外观(也包含系统列和ApplicationBar),但是遇到MessageBox,它就无法度了。
有了这个方便的小东西,以后要在App里强制使用Light Theme或是Dark Theme这种小事就不用再劳烦辛苦的Designer们啦!!