首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将SystemColors转换为刷子?

如何将SystemColors转换为刷子?
EN

Stack Overflow用户
提问于 2014-12-12 11:56:57
回答 1查看 1.4K关注 0票数 0

我有一个转换器,它返回一个画笔,在我的视图中设置控件的背景。然而,当我返回SystemColors.XXX时,它不工作,但是当我使用画笔时,它就工作了,所以我认为我需要将SystemColors转换为刷。

我该怎么做呢?因为我试过这样做:

代码语言:javascript
复制
return (Brush)System.Windows.SystemColors.HighlightTextBrush;

在控件的资源中,我设置如下:

代码语言:javascript
复制
<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"/>

我使用的是透明的,因为我将通过多值转换器设置行的背景。

太感谢了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 13:06:00

您需要创建自己的转换器。

代码语言:javascript
复制
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();
        }
    }

在资源部分中声明它来使用它。

代码语言:javascript
复制
<local:ColorToSolidColorBrushValueConverter  x:Key="ColorToSolidColorBrushValueConverter"/>

并将其作为静态资源在绑定中使用。

代码语言:javascript
复制
Fill="{Binding Path=xyz,Converter={StaticResource ColorToSolidColorBrush_ValueConverter}}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27443161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档