Почему кисть имеет только 3 гекса значения? - PullRequest
4 голосов
/ 27 сентября 2011

Например, на этой странице есть такой код:

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

Почему свойство color имеет только 3 шестнадцатеричное значение?Разве color обычно не имеет 6 или 8 шестнадцатеричных значений?(например, Fill = "# FF0000FF") Что означает 3 гекса?значит?

Ответы [ 3 ]

8 голосов
/ 27 сентября 2011

Цвета кисти можно указывать в шестнадцатеричной записи с тремя, четырьмя, шестью или восемью цифрами, как показано на странице MSDN для SolidColorBrush:

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

#rgb раскрываетсядо #rrggbb (как это происходит в шестнадцатеричной записи CSS), а #argb расширяется до #aarrggbb.Используя три или шесть цифр, альфа всегда максимальна.То есть все они эквивалентны:

<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 голосов
/ 27 сентября 2011

Если вы используете трехзначное значение, каждая цифра автоматически удваивается, поэтому #AAA эквивалентно #AAAAAA и #123 = #112233

0 голосов
/ 27 сентября 2011

Ваш пример FF0000FF представляет 4 шестнадцатеричных (кортежа) значения, которые представляют 4 байта (RGBA).Термин #AAA является краткосрочным термином.#AAA равно #AAAAAA равно # FFAAAA

...