Как преобразовать сплошной цвет в цветовой код в С#?
if (t == 2)
{
x.Foreground = new SolidColorBrush(Colors.Green);
}
Мне нужно получить значение из цветового кода, например #ffeeee, вместо названия цвета.
Я пытался :
abc.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ffaacc"));
Но я не могу использовать ColorConverter есть ли другой способ?
Color _color = System.Drawing.ColorTranslator.FromHtml("#ff0008");
abc.Foreground = _color;
Можете попробовать, у меня сработало.
System.Drawing.ColorTranslator является частью пространства имен System.Drawing, которое является Windows Forms и отсутствует в проекте WPF, я не знаю, так ли это.
Вы можете использовать ColorConverter, но он повторно настраивает System.Drawing.Color. Проблема в том, что конструктор SolidColorBrush принимает Windows.UI.Color.
Существует очень простой способ преобразовать цвет из System.Drawing в Windows.UI:
public static Windows.UI.Color GetColorFromHex(string hexaColor)
{
//get the color as System.Drawing.Color
var clr = (System.Drawing.Color)new ColorConverter().ConvertFromString(hexaColor);
//convert it to Windows.UI.Color
return Windows.UI.Color.FromArgb(clr.A, clr.R, clr.G, clr.B);
}
Как назвать статус
X.Foreground = new SolidColorBrush(GetColorFromHex("#ff0000"));
Это сработало очень много
Отвечает ли это на ваш вопрос? Как получить цвет из шестнадцатеричного цветового кода с помощью .NET?