2009-09-27 115 views
6

我正在使用Expression Blend 3並手動編寫一些XAML,特別是控件的顏色值。爲什麼在十六進制顏色值中領先的「#FF」?

我有一個已經轉換爲十六進制RGB顏色的列表。我只需要將十六進制值插入到我的XAML中。

最初,我將來自電子郵件的十六進制值粘貼到適當的屬性中。在我完成之前,Blend開始適應,突出顯示顏色屬性,並用一個工具提示告訴我「令牌無效」。經過一番研究,我發現在十六進制值前面放置一個英鎊符號(「#」)解決了這個問題。

在研究這個問題的過程中,我開始通過Blend中的顏色選擇器改變顏色。我很快發現Blend插入的值不僅以磅符號開始,而且還以「FF」開頭。我正在粘貼的值是有效的十六進制格式的有效顏色。但是,當將RGB值輸入到Blend並讓Blend插入十六進制值時,我注意到所有mycolors都以「#FF」作爲前綴。正如我已經指出的那樣,刪除#會產生錯誤,但是刪除「FF」並沒有任何效果。

在十六進制顏色的世界裏,顏色#5A7F39的顏色是否和#FF5A7F39的顏色一致?爲什麼FF?他們是兩個不同的十六進制值,對嗎?但在屏幕上顯示完全相同。爲什麼區別?

回答

15

這可能是顏色的alpha分量,它表示不透明度(00-> transparent,FF-> opaque)。

MSDN似乎同意這一點:http://msdn.microsoft.com/en-us/library/bb980062(VS.95).aspx

16位十六進制,阿爾法 - #AARRGGBB

+1

根據文章,1位十六進制數字表示8位,2位十六進制數字表示16位,我有點困惑。 – snarf 2009-09-28 00:19:20

2

我相信領導FF是阿爾法。 255(或FF)是100%不透明的,並且00將是透明的。

0

'extra'ff是一個alpha值(透明度)。如果您只有3個十六進制對,則alpha值被假定爲ff(不透明)。但是,如果您比較#335A7F39和#FF5A7F39,您應該會看到一個差異