2011-08-31 67 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