Лучший способ изменить цвета сплошной кисти
У меня есть кисть, которая привязана к фону элемента в моем приложении 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
хотя ваш нынешний подход вполне подойдет.