В 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 не имеет "#" в нем.

Color.FromArgb(Convert.ToInt32( str.Substring(1), 16 ));
Другие вопросы по тегам