В C#, как я могу создать объект System.Drawing.Color, используя шестнадцатеричное значение?
В C#, как я могу создать объект System.Drawing.Color, используя такие значения, как #FFFFF,#FGFG01 и т.д...
4 ответа
string hexValue = "#000000"; // You do need the hash
Color colour = System.Drawing.ColorTranslator.FromHtml(hexValue); // Yippee
Изменить: вам действительно нужен хэш, иначе значение альфа не будет принято во внимание. Woops!
var my col = Color.FromArgb(int x);
обратите внимание, что вам также нужно указать альфа-значение (возможно, вам нужен FF для этого, то есть полностью непрозрачный, поэтому добавьте 0xFF000000 к шестнадцатеричному значению цвета)
Можете ли вы изменить значения, чтобы начать с 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
не имеет "#" в нем.