//from MaterialDesignDemo.Converters
public class BrushToHexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null) return null;
string lowerHexString(int i) => i.ToString("X2").ToLower();
var brush = (SolidColorBrush)value;
var hex = lowerHexString(brush.Color.R) +
lowerHexString(brush.Color.G) +
lowerHexString(brush.Color.B);
return "#" + hex;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}补充:C# 16进制转 Brush 颜色对象
代码图如下:


代码片如下:
BrushConverter brushConverter = new BrushConverter();
PopupBorder.Background = (Brush)brushConverter.ConvertFromString("#121212");
MessageLabel.Foreground = (Brush)brushConverter.ConvertFromString("#7d7d7d");