Windows phone 7 WP7-评估主题颜色

Windows phone 7 WP7-评估主题颜色,windows-phone-7,colors,Windows Phone 7,Colors,对于WP7应用程序,我想使用其他颜色来对比当前主题颜色 我决定使用对比色“红色”,除非主题色已经是“红色”,在这种情况下,我会使用合同色“蓝色” 但是下面的代码不起作用,因为它没有检测到主题颜色为“红色”,即使它已被设置为“红色”,并且肯定会在应用程序中显示为“红色” private void AssessContrastColor() { System.Diagnostics.Debug.WriteLine("In assess color"); S

对于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的选项?因此,我在上面评论道


谢谢你的建议。谢谢

这可能是因为重音颜色不是红色,准确地说,是接近红色的

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

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

但是我强烈建议不要改变对比色。您可能会降低内容的可读性。

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

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


谢谢你的快速回答!我不是在改变手机内的对比色,只是想要另一种颜色,我使用的应用程序功能,是不同的主题颜色。(对不起,我解释得不太清楚)HTC刚刚发布了一些以白色背景为黑色主题的手机。小心点,谢谢。我只是在应用程序中使用第二种颜色,并没有改变或背离ostandard颜色方案。@ClausJørgensen PhoneAccentBrush的代码是什么(即透明,根据主题颜色)。谢谢-我知道第11种自定义颜色,我不依赖于只有标准10种颜色