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相关的一些问题相关推荐

  1. Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法

    原文:Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法  [函数名称] 肤色检测函数SkinDetectProcess(WriteableBitmap src) [算法说明] ...

  2. Win8 Metro App里玩XNA:ContentPipeline内容管线问题

    Win8 Metro App里玩XNA:ContentPipeline内容管线问题   开了个头 本篇中其实没有真正解决Win8里XNA的ContentPipeline(内容管线)问题,而是说明如何使 ...

  3. Win8 Metro App里玩XNA:移植XNA游戏到Win8

    Win8 Metro App里玩XNA:移植XNA游戏到Win8   Ready ! 在本文中,将把一个WindowsPhoneXNA的游戏移植到Win8 Metro(Modern)风格上,直接在Wi ...

  4. Win8 Metro(C#)数字图像处理--2.37Wallis图象锐化

    原文:Win8 Metro(C#)数字图像处理--2.37Wallis图象锐化  [函数名称] Wallis图象锐化        WallisSharpen(WriteableBitmap sr ...

  5. Win8 Metro UI风格的Web设计资源分享

    最近微软已经正式发布了windows 8操作系统,window操作系统的风格已经完全改变成了瓦片状的Metro UI. 对于微软来说这是一个巨大的改变,而且所有微软的平台包括,桌面,平板,移动及其网站 ...

  6. Win8 Metro(C#)数字图像处理--2.52图像K均值聚类

    原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类  [函数名称] 图像KMeans聚类      KMeansCluster(WriteableBitmap src,int ...

  7. Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法

    原文:Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法  [函数名称] 部分彩色保留函数       WriteableBitmap PartialcolorProcess(W ...

  8. Win8 Metro(C#)数字图像处理--2.69中点滤波器

    原文:Win8 Metro(C#)数字图像处理--2.69中点滤波器 [函数代码] <strong> /// <summary>/// Mid-point filter./// ...

  9. Windows下运行rabbitmqctl 相关命令(如rabbitmqctl stop)报错:Error: unable to perform an operation on node解决方案

    Windows下运行rabbitmqctl 相关命令(如rabbitmqctl stop)报错:Error: unable to perform an operation on node解决方案 参考 ...

最新文章

  1. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
  2. c/c++基础 输入函数/流
  3. Spring Boot 2.4 对多环境配置的支持更改
  4. Cookie简介及JSP处理Cookie的方法(转)
  5. sqlserver怎么将excel表的数据导入到数据库中
  6. Java初学者不得不知的概念,JDK,JRE,JVM的区别?
  7. 1.2.2 OSI参考模型(1)
  8. 一切成功的秘诀都蕴含在这个公式里面
  9. 【Redis】16.Redis哨兵
  10. TensorFlow报错:'dict' object has no attribute 'SerializeToString'
  11. 放球问题 组合数学 转自百度百科
  12. 网站优化JS css压缩
  13. java微信刷卡支付demo_微信刷卡支付例子
  14. 二十五、JAVA多线程(六、线程控制操作)
  15. python爬虫爬取微信公众号的阅读数、喜爱数、文章标题和链接等信息
  16. Xshell上传文件到linux服务器
  17. VR火灾隐患排查,模拟多种火灾场景
  18. 读《麦田里的守望者》(塞林格)
  19. 关于编写公司软件测试规范操作手册计划书
  20. Python爬虫练习:爬取软科世界大学学术排名

热门文章

  1. php课程---JavaScript与Jquery的区别(转)
  2. (转)检测不到兼容的键盘驱动程序
  3. Cisco3550三层交换机vlan间路由配置实例
  4. Js中Number对象
  5. Mysql梳理(多表查询)
  6. raspberry pi_如何使用Raspberry Pi构建数字针Kong相机
  7. 编程 态度目标_对目标持开放态度,从而推动事业发展
  8. 区块链组织架构_区块链可以加速开放组织的5种方式
  9. 适合初学者的安卓开源项目_开源周初学者
  10. 探讨 | SpringBoot + MyBatis 多数据源事物问题