WPF中关于Brushes和Colors的使用场景理解

  在WPF的运用过程中,可能很多人对Brushes和Colors这两个类不太熟悉,但是可以肯定的是,我们经常都会用到这两个类。那什么情况下会用到这两个类呢?如下示例代码所示:

Brushes使用场景:

<Button Background="AliceBlue">A Button</Button>

Colors使用场景:

<Button>B Button
    <Button.Background>
        <SolidColorBrush Color="AliceBlue" />
    </Button.Background>
</Button>

  以上两种实现方式都能给Button按钮设置背景颜色,当然大多数时候我们都喜欢使用第一种方式,个中缘由不言自明。但是长期的这种使用过程中,我们都忽视了Brushes的功劳,那怎么去理解这个类呢?通过查阅Button类的定义,我们发现,Background是由Brush这个类定义的,说到Brush就不得不提一下SolidColorBrush,也即是纯色画刷。我们想要设置某个控件的背景颜色为纯色的时候,必然会用到这个画刷,那在Brushes使用场景代码里,是怎么用到这个画刷呢?查阅Brushes的定义,我们发现这个类里定义了很多静态的只读属性,如:AliceBlue、Red、Green,这些属性都是通过SolidColorBrush来进行定义的。因此我们在使用上图第一个示例代码的时候,实际的后台逻辑代码应如下:

Button btn = new Button();
btn.Content = "后台按钮1";
btn.Background = Brushes.AliceBlue;

  说到这里,基本上Colors的使用场景也应该差不多明了了,Colors也是和Brushes一样的工作原理,SolidColorBrush的属性Color是由Color类定义的,在给SolidColorBrush赋值系统预定义颜色的时候,会调用Colors里定义好的由Color定义的静态属性对象,实际后台示例代码如下:

Button btn = new Button();
btn.Content = "后台按钮2";
var scb = new SolidColorBrush();
scb.Color = Colors.AliceBlue;
btn.Background = scb;

  以上就是我对这两个类的理解,如有错误,请欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值