欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-07 10:49:31
...

  在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;

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

相关标签: WPF学习 wpf