5

例如,在此页面中有如下代码:

<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

为什么颜色属性只有 3 个十六进制值?颜色通常没有 6 或 8 个十六进制值吗?(如 Fill="#FF0000FF") 3 个十六进制是什么意思?意思是?

4

3 回答 3

8

画笔颜色可以用 3、4、6 或 8 位十六进制表示法指定,如MSDN 页面中SolidColorBrush所示:

<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>

#rgb扩展为#rrggbb(就像它在 CSS 十六进制表示法中所做的那样),并#argb扩展为#aarrggbb. 使用三位数或六位数,alpha 总是被最大化。也就是说,这些都是等价的:

<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#FAAA" />
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAAAAA" />
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#FFAAAAAA" />
于 2011-09-27T11:02:31.787 回答
4

如果使用 3 位数值,每个位自动加倍,所以#AAA相当于#AAAAAAand #123=#112233

于 2011-09-27T11:03:24.033 回答
0

您的示例 FF0000FF 代表 4 个十六进制(元组)值,代表 4 个字节(RGBA)。术语#AAA 是一个短值术语。#AAA 等于 #AAAAAA 等于 #FFAAAA

于 2011-09-27T11:10:39.627 回答