画刷Brush使用

画刷类

  • SolidColorBrush
  • LinearGradientBrush
  • RadialGradientBrush
  • ImageBrush
  • VisualBrush
  • DrawingBrush

SolidColorBrush

SolidColorBrush是最常用到的画刷类,它的构造最简单,一种纯色画刷。

通常可通过Brushes来获取系统预先定义好的颜色画刷,也可以自己创建。例如:

Brush red = Brushes.Red;//红色画刷
Brush green = Brushes.Green;//绿色画刷
Brush blue = Brushes.Blue;//蓝色画刷
SolidColorBrush red = new SolidColorBrush(Colors.Red);//红色画刷

在xaml中使用纯色画刷也很方便:

<Grid Background="Blue">
</Grid> <Grid Background="#FF952C7D">
<Grid/>

LinearGradientBrush

LinearGradientBrush是线性渐变画刷。

<Grid.Background>
<LinearGradientBrush MappingMode="RelativeToBoundingBox" ColorInterpolationMode="ScRgbLinearInterpolation" StartPoint="0,0" EndPoint="1,1">
<GradientStopCollection>
<GradientStop Color="Red" Offset="0.2"/>
<GradientStop Color="Blue" Offset="0.5"/>
<GradientStop Color="Green" Offset="0.8"/>
</GradientStopCollection>
</LinearGradientBrush>
</Grid.Background>

其中GradientStop用于设置渐变颜色

RadialGradientBrush

RadialGradientBrush是径向渐变

<Grid.Background>
<RadialGradientBrush RadiusX="1" RadiusY="1" Center="0.1,0.2" GradientOrigin="0.2,0.2">
<GradientStopCollection>
<GradientStop Color="Red" Offset="0.2"/>
<GradientStop Color="Blue" Offset="0.6"/>
<GradientStop Color="Green" Offset="0.8"/>
</GradientStopCollection>
</RadialGradientBrush>
</Grid.Background>

ImageBrush

ImageBrush与剩余两种都继承于TileBrush类。ImageBrush是图片画刷,可以设置图片作为画刷来使用。

<Grid.Background>
<ImageBrush Stretch="Fill" Viewport="0,0,0.1,0.1" ViewportUnits="RelativeToBoundingBox" TileMode="Tile" ImageSource="/Images/ico_head.png"/>
</Grid.Background>

其中Stretch属性与Image中的属性效果一样,表示该图片在一定区域内的表现形式。

TileMode表示填充的方式。

TileMode="Tile"

WPF中Brush类型-LMLPHP

TileMode="FlipX"

WPF中Brush类型-LMLPHP

TileMode="FlipXY"

WPF中Brush类型-LMLPHP

TileModel="FlipY"

WPF中Brush类型-LMLPHP

可以发现设置不同的TileMode的值,所表现出来的效果是有很大不同的。

Viewport属性用于设置显示区域的大小。它与ViewportUnits一块配合使用。

ViewportUnits默认是相对值。

VisualBrush

可以将一般的图形设置为背景

<Grid.Background>
<VisualBrush TileMode="Tile" Viewbox="0,0,2,2" Viewport="0,0,0.1,0.1">
<VisualBrush.Visual>
<TextBlock Text=" 水印文本 "/>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>

DrawingBrush

DrawingBrush可以使用绘制

<Grid.Background>
<DrawingBrush Viewport="0,0,200,220" ViewportUnits="Absolute" TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="White">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,200,220"/>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Pen="{StaticResource SolidLine}" Geometry="M0,0 L200,0 200,200 0,200z"/>
<GeometryDrawing Pen="{StaticResource DottedLine}" Geometry="M100,0 L100,200"/>
<GeometryDrawing Pen="{StaticResource DottedLine}" Geometry="M0,100 L200,100"/>
<GeometryDrawing Geometry="M0,210 L200,210">
<GeometryDrawing.Pen>
<Pen Brush="Transparent" Thickness="10"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Grid.Background>
05-11 11:03