Я хочу создать SolidColorBrush из шестнадцатеричного значения, например #ffaacc. Как я могу это сделать?
В MSDN я получил:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
Итак, я написал (учитывая, что мой метод получает цвет как #ffaacc
):
Color.FromRgb(
Convert.ToInt32(color.Substring(1, 2), 16),
Convert.ToInt32(color.Substring(3, 2), 16),
Convert.ToInt32(color.Substring(5, 2), 16));
Но это дало ошибку как
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
Также 3 ошибки: Cannot convert int to byte.
Но как тогда работает пример MSDN?
Ответы:
Попробуйте вместо этого:
источник
Как получить цвет из шестнадцатеричного цветового кода с помощью .NET?
Я думаю, это то, что вам нужно, надеюсь, это ответит на ваш вопрос.
Чтобы ваш код работал, используйте Convert.ToByte вместо Convert.ToInt ...
источник
Я использую:
источник
источник
Если вы не хотите каждый раз сталкиваться с болью при преобразовании, просто создайте метод расширения.
Затем используйте вот так:
BackColor = "#FFADD8E6".ToBrush()
В качестве альтернативы, если бы вы могли предоставить способ сделать то же самое.
источник
версия vb.net
источник