WP7 - 评估主题颜色

时间:2011-08-31 06:06:24

标签: windows-phone-7 colors

对于WP7应用程序,我想使用其他颜色来对比当前主题颜色。

我决定将对比色设为“红色”,除非主题颜色已经是“红色”,在这种情况下我会签署合同颜色'蓝色'

但是下面的代码不起作用,因为它没有将主题颜色检测为“红色”,即使它已经设置了这种方式并且肯定在应用程序中显示了这种方式。

private void AssessContrastColor()
    {

        System.Diagnostics.Debug.WriteLine("In assess color");

        SolidColorBrush themeBrush = App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush;
        Color themeColor = themeBrush.Color;

        SolidColorBrush contrastBrush = new SolidColorBrush();

      //  contrastBrush.Color = ControlPaint.Light(themeColor); 



        if (themeColor == Colors.Red)
        {
          contrastBrush.Color = Colors.Blue;
        }


         else  contrastBrush.Color = Colors.Red;

        _ContrastThemeBrush = contrastBrush;


    }

代码看起来非常简单,但是,当通过调试器查看时,我得到它时的电话强调颜色(当它的红色时)不是#FFFF0000但是有点不同。

除此之外,我还希望将对比色创建为比主题颜色稍微浅一点的颜色,环顾四周,似乎可以引用一些代码,但随后偶然发现了' ControlPaint.Light调用'看起来很理想,但似乎不是WP7的选项吗?因此在上面评论过。

任何建议表示赞赏。感谢

2 个答案:

答案 0 :(得分:2)

这是因为重音颜色不是Red,而是接近它的颜色,准确#E51400

您可以找到所有颜色的列表以及如何使用它们here。为了将来证明答案,所有颜色的列表:

Blue     #1BA1E2
Brown    #A05000
Green    #339933
Lime     #8CBF26
Magenta  #FF0097
Orange   #F09609
Pink     #E671B8
Purple   #A200FF
Red      #E51400
Viridian #00ABA9

但我强烈建议反对更改对比色。你可能会使内容的可读性降低。

答案 1 :(得分:0)

如果您根据强调色确定自定义颜色,则在第十一种(供应商特定)颜色使用时可能会中断。来自documentation

  

您的应用程序应该知道这种额外的颜色,而不是仅对10种系统范围的颜色进行假设。例如,没有用于检查标准10种重音颜色的代码,然后执行特定操作;第十一种颜色可能会破坏操作