例如,在此页面中有如下代码:
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
为什么颜色属性只有 3 个十六进制值?颜色通常没有 6 或 8 个十六进制值吗?(如 Fill="#FF0000FF") 3 个十六进制是什么意思?意思是?
画笔颜色可以用 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" />
如果使用 3 位数值,每个位自动加倍,所以#AAA
相当于#AAAAAA
and #123
=#112233
您的示例 FF0000FF 代表 4 个十六进制(元组)值,代表 4 个字节(RGBA)。术语#AAA 是一个短值术语。#AAA 等于 #AAAAAA 等于 #FFAAAA