2011-08-31 131 views
0

对于WP7应用程序,我想使用其他颜色来对比当前主题颜色。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

这是因为雅绅特的颜色是不是Red,但接近它,要精确#E51400

你可以找到所有的颜色列表,以及如何使用它们here。而对于未来的校对答案,所有颜色的列表:

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

但我会强烈建议改变对比度的颜色。您可能会使内容不易读。

+0

感谢您的快速回答!我不会更改手机内的对比度颜色 - 只需要使用另一种颜色作为与主题颜色不同的应用程序功能。 (对不起 - 不解释我自己很好) – Peter

+0

HTC刚刚发布了一些黑色主题的白色背景的手机。被警告。 –

+0

谢谢。我只是在应用程序中使用次要颜色,并没有改变或远离ostandard配色方案。 – Peter

0

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

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

+0

谢谢 - 知道第11个自定义颜色,我不依赖于只有标准10 – Peter