我有一个转换器,它返回一个画笔,在我的视图中设置控件的背景。然而,当我返回SystemColors.XXX时,它不工作,但是当我使用画笔时,它就工作了,所以我认为我需要将SystemColors转换为刷。
我该怎么做呢?因为我试过这样做:
return (Brush)System.Windows.SystemColors.HighlightTextBrush;在控件的资源中,我设置如下:
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black"/>我使用的是透明的,因为我将通过多值转换器设置行的背景。
太感谢了。
发布于 2014-12-12 13:06:00
您需要创建自己的转换器。
public class ColorToSolidColorBrushValueConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
return new SolidColorBrush((Color)value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}在资源部分中声明它来使用它。
<local:ColorToSolidColorBrushValueConverter x:Key="ColorToSolidColorBrushValueConverter"/>并将其作为静态资源在绑定中使用。
Fill="{Binding Path=xyz,Converter={StaticResource ColorToSolidColorBrush_ValueConverter}}"https://stackoverflow.com/questions/27443161
复制相似问题