2009-09-27 51 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,您应该会看到一个差异

相关问题