Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > WPF и Silverlight > [SL] Сахар для цвета |
Автор: dazy 6.4.2009, 12:18 | ||
Как известно, все цвета в xaml пишутся в формате #FF000000 (исключая стандартные black red и т.п.) Самое интересное, что в коде, класс Colors содержит всего 15 цветов, в то время как в xaml можно использовать 192 поименованных цвета. По умолчанию, цифры в цвет можно перевести пользуясь функцией FromArgb(). Но она принимает данные по-байтам, что не удобно. А удобно скопировать цвет из xaml или из блендера и вставить в код. Для этих целей делаем простенькую обертку, чтобы не вручную разбирать число на байты:
И пользуемся: sb = new SolidColorBrush(UIntToColor (0xFF696969)); |
Автор: WolfTheGrey 6.4.2009, 13:28 |
Извени, не хчу показаться: ![]() Тебе обязательно с цифрами рабоать? ведь, можно при помощи рефлекции переписать все цвета из классов: Colors & Brushes в string[192 цвета] масив; |
Автор: dazy 6.4.2009, 14:26 |
Скажем так, я прекрасно понимаю, что одного и того же результата можно добиться разными способами. Какой способ выбирать, решает разработчик исходя из текущей ситуации. Я использую в том числе и этот способ. Тем более что в WPF, эта функция - UIntToColor есть по-умолчанию. Почему бы не применять ее в SL? Да, и 192 - это ооочень мало. ![]() Добавлено @ 14:28 А можно пример, как вы из string[192] потом цвет получаете? |
Автор: rooks 6.4.2009, 14:57 | ||||
dazy, спасибо, очень классная штука... я ее немного переделал:
и теперь это можно юзать так:
|