zoukankan      html  css  js  c++  java
  • Windows Phone 修改系统定义的资源颜色

    【问题的背景】

    相信有些经验的WP研发同学都会遇到下面的问题:

    1. 系统控件以及WPToolkit中大量使用了PhoneAccentBrush这个画刷(这个画刷定义的是系统的强调色,即用户选择的主题颜色),

      以致为了满足UI设计的需求,为了一个色值而定义了不下100行的xaml代码,其中只有一行用来修改颜色。

    2、使用Textblock的时候忘记设定Foreground导致用户把主题切换到白色的时候,很多字看不清了。

       

    下面是摘自WPToolkit中控件模版的定义:

    遇到这类的还算好改但是下面这样的就可以直接喷血了:

       

    【解决办法】

       

    之前笔者都是用blend编辑模版的copy来实现需求(华丽的展示了很好的Xaml基础=。=),知道有一天突然想到,我们能否把系统这个资源改了呢……

    笔者进行了几种尝试,最终用下面的代码解决了这个问题:

       

    MainColor1和DefaulitForegroundColor是我定义在程序资源字典中的一个Color类型的资源:

       

       

    我们只需把OverwriteSystemColor 放到App的构造函数最后面即可。

       

    如此取巧的方式便偷天换日搬修改了系统定义的色值,省去了很多之前一直很麻烦的事情!

     

       

    关于WP的交流欢迎加入QQ群:182659848

  • 相关阅读:
    204. Count Primes (Integer)
    203. Remove Linked List Elements (List)
    202. Happy Number (INT)
    201. Bitwise AND of Numbers Range (Bit)
    200. Number of Islands (Graph)
    199. Binary Tree Right Side View (Tree, Stack)
    198. House Robber(Array; DP)
    191. Number of 1 Bits (Int; Bit)
    190. Reverse Bits (Int; Bit)
    189. Rotate Array(Array)
  • 原文地址:https://www.cnblogs.com/tianhonghui/p/3373276.html
Copyright © 2011-2022 走看看