Как я могу отличить название цвета до типа SolidColorBrush? Я имею в виду слово, то есть "Желтый".
SolidColorBrush scb = ??? ; // "Yellow"
Спасибо!
Ответ 1
Для получения цвета используйте:
Color col=(Color)ColorConverter.ConvertFromString("Red");
Затем создайте кисть:
Brush brush=new SolidColorBrush(col);
или если вы можете использовать Colour-enum
Brush brush=new SolidColorBrush(Colors.Red);
Ответ 2
Если вы уже знаете название цвета, вы можете получить кисть непосредственно из Brushes:
SolidColorBrush scb = Brushes.Yellow; //scb seems a bit redundant at this point...
В коде вы обычно не должны использовать преобразователи, если у вас нет строки, значение которой вы не знаете.
Ответ 3
Вы не можете отбрасывать друг друга. Это просто разные понятия. Кисть - это кисть, а цвет - это, ну, цвет. Просто потому, что кисть "рисует" в определенном цвете, не означает, что вы можете обменивать друг на друга.
Однако вы можете создать SolidColorBrush с определенным цветом, например:
var brush = new SolidColorBrush(Color.Yellow);
Ответ 4
// Yellow is green + red
SolidColorBrush yellowBrush = new SolidColorBrush(System.Windows.Media.Color.FromRgb(255, 255, 0));