none
关于wp7系统主题更改通知的问题 RRS feed

  • 问题

  • 应用中所有控件我采用默认的效果,当我更改系统主题列如(我将Theme设置为drak,即白色主题),记住我是在没有退出应用,而是切换出去修改的系统主题,修改完后我切换回到我的应用中,还是黑色的效果没有变,怎样才能得取这个更改通知,同时更新我的应用界面,我了解了一下,windows phone7自带的应用都具有自动响应系统主题的功能,它是一个什么机制呀,请高手帮我解答一下,谢谢!


    别拿你的理由来挑战我的沉默

    2012年3月7日 9:19

答案

全部回复

  • "我将Theme设置为drak,即白色主题",哥们别怪我,看完这句我真的笑出来了。

    在页面的OnNavigateTo事件处理方法中判断当前主题色,如果PhoneForegroundColor是白色,说明是黑底白字,否则是白底黑字。

    Color themeColor = (Color)Application.Current.Resources["PhoneForegroundColor"];  
              
    if (themeColor.ToString() == "#FFFFFFFF")  
    {  
        // 暗色主题        
    }  
    else 
    {  
        // 亮色主题,我猜这就是你所说的drak :)     
    } 



    • 已编辑 MainTao 2012年3月7日 15:36
    2012年3月7日 12:51
  • 谢谢你的回复,但是这个只是取得当前主题颜色,怎么样更新当前界面呢?而且更新的不单单是背景颜色(很明显还有文字颜色,状态栏的灰色等)~!!整个界面就像刷新了一样!

    别拿你的理由来挑战我的沉默

    2012年3月8日 2:46
  • 两种方案:

    1. 做两套界面样式,每次导航到页面时,先检测theme,然后使用相应的样式。

    2. 做一套与theme无关的UI,可参考:http://www.cnblogs.com/dc10101/archive/2011/12/16/2289605.html


    • 已标记为答案 Shi Ding 2012年3月9日 7:56
    2012年3月8日 4:26
  • 谢谢,希望以后多多交留,非常感谢!

    别拿你的理由来挑战我的沉默

    2012年3月9日 3:06