How to convert string to SolidColorBrush in C#?

Я пытаюсь преобразовать string к SolidColorBrush в C#. Код, который я использую:

arrColors[arrColors.Length - 1] = 
                         (SolidColorBrush)new BrushConverter().ConvertFromString(sLine);

where sLine is a string read from a text file. Например, sLine might be "Black".

This code gives me a FormatException,

2 ответа

Предполагая, что все ваши кисти имеют сплошные цвета, вы можете создать Color из строки следующим образом:

Color color = (Color)ColorConverter.ConvertFromString(sLine);

Тогда вы могли бы создать SolidColorBrush из этого цвета, вот так:

SolidColorBrush brush = new SolidColorBrush(color);

РЕДАКТИРОВАТЬ: Если преобразуется строка на английском языке, но текущая культура не, вы можете использовать ConvertFromInvariantString вместо этого, вот так:

ColorConverter converter = new ColorConverter();
Color color = (Color)converter.ConvertFromInvariantString(sLine);

Попробуй это:

var color = (Color)ColorConverter.ConvertFromString(sLine);
var brush = new SolidColorBrush(color);
Другие вопросы по тегам