书名:WPF专业编程指南
作者:李应保
出版社:电子工业出版社
出版时间:2010-01
ISBN:9787121100116
一、圆形梯度画刷
- (RadialGradientBrush)
RadialGadientBrush需要说明圆心坐标,及X方向和Y方向的半径:GradientOrigin、Center、RadiusX和RadiusY的值:
二、自制画刷
- (DrawingBrush)
自己创建一种任意图形的画刷
各种标准符号,如变压器、开关等
一个变压器自制画刷
<Window x:Class="Yingbao.Chapter5.TransformerDrawingBrush"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Yingbao.Chapter5" Height="300" Width="300">
<Grid>
<Rectangle Width="200" Height="200" Stroke="Blue"
StrokeThickness="2">
<Rectangle.Fill>
<DrawingBrush Viewport ="0.1,0.1,0.5,0.5" >
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="White">
<GeometryDrawing.Geometry>
<GeometryGroup>
<EllipseGeometry Center="50,40"
RadiusX="45" RadiusY="45"/>
<EllipseGeometry Center="50,100"
RadiusX="45" RadiusY="45"/>
<LineGeometry StartPoint="50,20"
EndPoint="30,40" />
<LineGeometry StartPoint="50,20"
EndPoint="70,40" />
<LineGeometry StartPoint="30,40"
EndPoint="70,40" />
<LineGeometry StartPoint="50,100"
EndPoint="50,120" />
<LineGeometry StartPoint="50,100"
EndPoint="30,90" />
<LineGeometry StartPoint="50,100"
EndPoint="70,90" />
</GeometryGroup>
</GeometryDrawing.Geometry>
<GeometryDrawing.Pen>
<Pen Thickness="2" Brush="Black" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</Window>
-
在这段XAML里,创建了一个变压器自制画刷,并把这个画刷作为矩形的填充属性(这和前面把SolidColorBrush作为矩形的填充属性是一样的)。
图5-11 用自制画刷(DrawingBrush)创建的变压器画刷 - 上述XAML代码,创建了一个一边是三角形接法、一边是星形接法的变压器符号。需要指出的是由于这个变压器符号是一个画刷,故可以用这个画刷来绘制任何区域!
三、粘贴模式(TileMode)
- 自制画刷支持五种粘贴模式,这类似于装修房子时贴地板砖。
- 这五种模式是:none、Tile、FlipX、FlipY、FlipXY。
四、伸展方式(Stretch)
- 自制画刷还有一个伸展方式的属性,其取值为none、Fill、Uniform及UniformToFill。
它用来控制画刷用什么样的方式在所绘制的区域伸展
