Лучший способ изменить цвета сплошной кисти

У меня есть кисть, которая привязана к фону элемента в моем приложении wpf.

Когда я инициализирую его в конструкторе, я делаю это соответственно:

MessageBackground = new SolidColorBrush(Colors.Red);

Теперь в коде есть моменты, когда я хочу изменить фон на зеленый. Я делал это так:

MessageBackground = new SolidColorBrush(Colors.LightGreen);

но это кажется мне неправильным. Сам фон сообщения имеет тип System.Windows.Media.Brush. Кажется, что у него нет такого свойства, как Color или Brush, которое бы позволяло динамически изменять его.

1 ответ

Решение

Вам нужно будет разыграть MessageBackground собственность на SolidColorBrush чтобы иметь возможность установить его Color имущество:

var brush = MessageBackground as SolidColorBrush;
if (brush != null)
    brush.Color = Colors.LightGreen;

Это не лучше, чем просто установить новое свойство SolidColorBrush хотя ваш нынешний подход вполне подойдет.

Другие вопросы по тегам