WPF中文网

SolidColorBrush纯色画刷

SolidColorBrush继承于Brush抽象类,表示用某一种颜色填充区域。从定义上看,它拥有一个Color属性,表示具体的颜色值。

public sealed class SolidColorBrush : Brush
{
    public static readonly DependencyProperty ColorProperty;

    public SolidColorBrush();
    public SolidColorBrush(Color color);

    public Color Color { get; set; }

    public static object DeserializeFrom(BinaryReader reader);
    public SolidColorBrush Clone();
    public SolidColorBrush CloneCurrentValue();

}

Color 在WPF中代表颜色值,被设计成一个结构体,主要是4个属性,即A、R、G、B,分别表示Alpha透明通道值,红色通道值、绿色通道值和蓝色通道值。它们的取值范围都是0-255。

所以假如我们要设置Grid的背景颜色,在XAML中可以如下设置

<Grid>
    <Grid.Background>
        <SolidColorBrush>
            <SolidColorBrush.Color>
                <Color A="255" R="255" G="0" B="0"/>
            </SolidColorBrush.Color>
        </SolidColorBrush>
    </Grid.Background>
</Grid>

当然,还有更简单的方法。就是使用系统颜色。

<Grid Background="Red">
    <!--<Grid.Background>
        <SolidColorBrush>
            <SolidColorBrush.Color>
                <Color A="255" R="255" G="0" B="0"/>
            </SolidColorBrush.Color>
        </SolidColorBrush>
    </Grid.Background>-->
</Grid>

两种方式,结果都会以红色填充Grid区域。需要注意的是,两种方式不可同时使用,所以我将其中一种方式注释掉了。

我们还可以用C#代码的方式去设置背景颜色。

SolidColorBrush solidColorBrush = new SolidColorBrush();
//使用系统自定义的颜色
solidColorBrush.Color = Colors.Green;
//或者从Color的FromRgb成员中得到颜色
solidColorBrush.Color = Color.FromRgb(0, 0x80, 0);
grid.Background = solidColorBrush;

我们在构造函数中将grid的颜色设置为绿色,如下所示。

虽然在XAML中,当前Grid的背景颜色初始值是红色,但是我们在运行时将其改成了绿色。通常,它还可以被实例化成一个资源,这样达到一次定义多次使用的效果。

<Window.Resources>
    <SolidColorBrush x:Key="BackgroundBrush" Color="#123456"/>
</Window.Resources>
<Grid x:Name="grid" Background="{StaticResource BackgroundBrush}"/>

当前课程源码下载:(注明:本站所有源代码请按标题搜索)

文件名:094-《SolidColorBrush纯色画刷》-源代码
链接:https://pan.baidu.com/s/1yu-q4tUtl0poLVgmcMfgBA
提取码:wpff

——重庆教主 2023年11月03日

copyright @重庆教主 WPF中文网 联系站长:(QQ)23611316 (微信)movieclip (QQ群).NET小白课堂:864486030 | 本文由WPF中文网原创发布,谢绝转载 渝ICP备2023009518号-1