В C #, как я могу создать объект System.Drawing.Color, используя такое значение, как это # FFFFF, # FGFG01 и т. Д.
Как в C # создать объект System.Drawing.Color с использованием шестнадцатеричного значения?
comment
Имейте в виду, что если вы получаете шестнадцатеричное значение из строки запроса, хеш будет закодирован как% 23.
- person Phillip   schedule 18.01.2013
Ответы (4)
string hexValue = "#000000"; // You do need the hash
Color colour = System.Drawing.ColorTranslator.FromHtml(hexValue); // Yippee
Изменить: вам действительно нужен хеш, иначе альфа-значение не будет учитываться. Ой!
person
djdd87
schedule
19.11.2009
Хороший ответ + бонусные баллы за Yippee
- person Paul Turner; 19.11.2009
Пришлось изменить мое сравнение if (color == Black), поскольку это два разных объекта, поэтому условие никогда не было бы истинным. Оставил комментарий ура - только для вас!
- person djdd87; 19.11.2009
да. HASH необходим. В противном случае будет выдана ошибка
- person Shyju; 19.11.2009
var my col = Color.FromArgb (int x);
обратите внимание, что вам также необходимо указать альфа-значение (возможно, вам нужен FF для этого, т.е. полностью непрозрачный, поэтому добавьте 0xFF000000 к шестнадцатеричному значению цвета)
person
jk.
schedule
19.11.2009
+1 Он может использовать Int32.Parse, чтобы превратить шестнадцатеричную строку в int, просто опустите #.
- person Matt Ellen; 19.11.2009
Можете ли вы изменить значения, чтобы они начинались с FF? Например. FFFFFFFF = белый. Это необходимо для добавления альфа-значения в начало.
Если это так, просто проанализируйте значение с помощью System.Drawing.Color.FromArgb
. Требуется int
, где первые 8 бит - это альфа-значение. 255 непрозрачен.
Чтобы преобразовать вашу строку в int, используйте Int32.Parse. Например.
String HexColourValue = "FABFAB";
System.Drawing.Color colour = System.Drawing.Color.FromArgb(Int32.Parse("FF"+HexColourValue,
System.Globalization.NumberStyles.HexNumber));
Убедитесь, что в HexColourValue
нет символа #.
person
Matt Ellen
schedule
19.11.2009
person
schedule
не даст ли это значение аплха 0, которое является прозрачным?
- person jk.; 19.11.2009
Да, если поддерживается альфа. Вам нужно будет использовать # FF123456, если вы хотите непрозрачные цвета, или добавить 0xff000000 к результату преобразования.
- person EricSchaefer; 19.11.2009