Win8 Metro和Windows Phone的Style相关的一些问题
Win8 Metro和Windows Phone虽然都是xaml描述的界面,但样式是有一些区别的:
Win8的主题是由开发者控制的,可以在App.xaml.cs代码里设置RequestedTheme="Dark" 或Light,也可以直接在App.xaml里指定。
Windows Phone的主题是由用户控制的,用户可以在系统里设置深色或浅色,这样开发者必须做两种主题的适配,一般都是设置成深色主题,但也要注意浅色主题下文字是否能正常显示。
有一个工具可以强制设置应用的主题,覆盖掉用户的设置。参考 http://www.dotblogs.com.tw/ouch1978/archive/2012/05/22/wp7-phone-theme-manager.aspx
原文链接http://www.jeff.wilcox.name/2012/01/phonethememanager/
使用很简单,Nuget里搜索Winodw Phone Theme Manager,安装后一行代码即搞定:
ThemeManager.ToLightTheme();
切换Win8 Metro应用的主题,可参考这里:
http://mikaelkoskinen.net/post/windows-8-winrt-metro-xaml-application-theme-dark-light.aspx
微软官方的例子也有这个示例。
还有一种情况是,应用使用了Dark主题,但在某些页面中,比如“设置”“关于”等页面,需要使用Light主题,那就需要覆盖掉系统的主题了。系统默认的主题放在 C:\Program Files (x86)\Windows Kits\8.0\Include\winrt\xaml\design\ 里面有generic.xaml和themeresources.xaml两个文件,可以打开generic.xaml看里面的内容,里面有Dark和Light各种主题的画刷,app启动时就调用这里面的画刷资源,所以在xaml代码里才可以直接写 Style="{StaticResource ItemTextStyle}" 这样的形式来直接引用。那如果在某个页面里想改其他的主题怎么办呢?
我想了一个比较笨的办法,把Dark或Light的画刷和各个控件的Style直接复制过来,应该可以覆盖掉系统的Style。但总是不起作用,后来觉得可能是Key冲突了,因此在Blend里把Key都改了一遍,Blend会提示哪些Style使用了此种画刷,全部更新之。这样就正常了。
如果您有更好的办法,希望留言讨论。
转载于:https://www.cnblogs.com/yanxiaodi/archive/2012/11/22/2782457.html
Win8 Metro和Windows Phone的Style相关的一些问题相关推荐
- Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法
原文:Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法 [函数名称] 肤色检测函数SkinDetectProcess(WriteableBitmap src) [算法说明] ...
- Win8 Metro App里玩XNA:ContentPipeline内容管线问题
Win8 Metro App里玩XNA:ContentPipeline内容管线问题 开了个头 本篇中其实没有真正解决Win8里XNA的ContentPipeline(内容管线)问题,而是说明如何使 ...
- Win8 Metro App里玩XNA:移植XNA游戏到Win8
Win8 Metro App里玩XNA:移植XNA游戏到Win8 Ready ! 在本文中,将把一个WindowsPhoneXNA的游戏移植到Win8 Metro(Modern)风格上,直接在Wi ...
- Win8 Metro(C#)数字图像处理--2.37Wallis图象锐化
原文:Win8 Metro(C#)数字图像处理--2.37Wallis图象锐化 [函数名称] Wallis图象锐化 WallisSharpen(WriteableBitmap sr ...
- Win8 Metro UI风格的Web设计资源分享
最近微软已经正式发布了windows 8操作系统,window操作系统的风格已经完全改变成了瓦片状的Metro UI. 对于微软来说这是一个巨大的改变,而且所有微软的平台包括,桌面,平板,移动及其网站 ...
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类 [函数名称] 图像KMeans聚类 KMeansCluster(WriteableBitmap src,int ...
- Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法
原文:Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法 [函数名称] 部分彩色保留函数 WriteableBitmap PartialcolorProcess(W ...
- Win8 Metro(C#)数字图像处理--2.69中点滤波器
原文:Win8 Metro(C#)数字图像处理--2.69中点滤波器 [函数代码] <strong> /// <summary>/// Mid-point filter./// ...
- Windows下运行rabbitmqctl 相关命令(如rabbitmqctl stop)报错:Error: unable to perform an operation on node解决方案
Windows下运行rabbitmqctl 相关命令(如rabbitmqctl stop)报错:Error: unable to perform an operation on node解决方案 参考 ...
最新文章
- ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
- c/c++基础 输入函数/流
- Spring Boot 2.4 对多环境配置的支持更改
- Cookie简介及JSP处理Cookie的方法(转)
- sqlserver怎么将excel表的数据导入到数据库中
- Java初学者不得不知的概念,JDK,JRE,JVM的区别?
- 1.2.2 OSI参考模型(1)
- 一切成功的秘诀都蕴含在这个公式里面
- 【Redis】16.Redis哨兵
- TensorFlow报错:'dict' object has no attribute 'SerializeToString'
- 放球问题 组合数学 转自百度百科
- 网站优化JS css压缩
- java微信刷卡支付demo_微信刷卡支付例子
- 二十五、JAVA多线程(六、线程控制操作)
- python爬虫爬取微信公众号的阅读数、喜爱数、文章标题和链接等信息
- Xshell上传文件到linux服务器
- VR火灾隐患排查,模拟多种火灾场景
- 读《麦田里的守望者》(塞林格)
- 关于编写公司软件测试规范操作手册计划书
- Python爬虫练习:爬取软科世界大学学术排名