Установить цвет с помощью цветового кода в C # - PullRequest
15 голосов
/ 18 июня 2010

Я пытаюсь добавить цвет в коде c #, например, со следующим цветовым кодом.

ListTreeView.Background = new SolidColorBrush (Colors.White);

Это работает .. но я хочу добавить этот цвет в качестве цветового кода, поэтому я добавляю как

System.Windows.Media

Может ли кто-нибудь дать мне пример с

System.Drawing

Так что я могу сделать следующее:

ListTreeView.Background = ColorTranslator.FromHtml ("# FFE7EFF2");

Это дает мне ошибку; Есть идеи?

Ответы [ 4 ]

21 голосов
/ 18 июня 2010

Нет простого способа получить цвет с включенным альфа-каналом из шестнадцатеричной строки.

Я думаю, что ваш ответ зависит от того, откуда вы получаете значения цвета и альфа-канала.

Один цвет RGB можно проанализировать из шестнадцатеричной строки HTML:

Color colour = ColorTranslator.FromHtml("#E7EFF2");

Если у вас есть отдельное альфа-значение, вы можете применить это ( документы ):

Color colour = ColorTranslator.FromHtml("#E7EFF2");
Color transparent = Color.FromArgb(128, colour);

В качестве альтернативы вам может понадобиться проанализировать строку и разбить ее, чтобы преобразовать шестнадцатеричные пары в целочисленные значения.

PS извините английское написание, но цвет определенно должен иметь 'u' вэто :)

7 голосов
/ 18 июня 2010

ListTreeView не является стандартом Control, предоставляемым платформой, поэтому вам придется ознакомиться с их документацией.В целом, однако, вы можете использовать System.Drawing.ColorTranslator.FromHtml или System.Drawing.Color.FromArgb.Вот как бы вы сделали это с TreeView:

TreeView t = ...
t.BackgroundColor = Color.FromArgb(0xff00ff00); // Fully opaque, 100% green.
// or:
t.BackgroundColor = ColorTranslator.FromHtml("green");
2 голосов
/ 18 июня 2010

Я думаю, вы могли бы использовать System.Drawing.ColorTranslator.FromHtml.

0 голосов
/ 18 июня 2010

Используйте метод Color.FromArgb .

Кстати, не должно ли это быть Treeview.BackColor вместо этого?

Grz, Kris.

...