VerticalAlignment="Top" Width="450" >
< Path.Data>
< GeometryGroup FillRule="EvenOdd" >
< EllipseGeometry Center="200,350" RadiusX="30" RadiusY="30"/>
< RectangleGeometry Rect="150,350,200,100"/>
< /GeometryGroup>
< /Path.Data>
< /Path>
Tip:GeometryGroup 的FillRule 分为两种模式,一种为“不叠加-Evenodd”,另一种为“叠加-Nonzero”。
Path 的另外一种实现方式为系列线实现模式,实现此模式须把Fill 去掉,否则会在线条之间填充颜色值。实现此系列线相对要复杂一些,必须掌握一定的mini Language 为其添加Data,下面是一些Mini Language 的命令:
移动命令:
M:绝对起始点 m:相对于前一点的起始点 如:M 100 ,200 M即Move 移动,移动到Left:100,Top:200这个位置开始
直线命令:
L:L/l 直线的结束点,如:L 100,200 即画从M的开始点左画100并停留在Top为200的位置,在这个位置开始弯折
水平线命令:
H:水平线的长度
垂线命令:
V:垂直线的长度
二次贝赛尔曲线命令:
Q:控制点坐标,结束点坐标
如:Q 100 ,200 300,200
三次贝赛尔曲线命令:
C:控制点坐标,控制点坐标,结束点坐标
光滑二次贝赛尔曲线命令:
T:控制点坐标,结束点坐标
如:T 100,200 300,200
光滑三次贝赛 尔曲线命令:
S:控制点坐标,结束点坐标
如:S 100,200 200,300
圆弧命令:
A:弧大小(半径值)、弧角、优弧弧标记(1大于等于180度,0小于180度)、正负弧标记、结束点
如:A 5,5 0 0 0 10,10
闭合命令:
Z:将创建的曲线封闭
下面给出一个实现的样例代码:
< Path Height="428"
HorizontalAlignment="Left"
Margin="12,207,0,0"
Name="path3"
Stroke="Red"
Data="M 10,40 L 300,40 V100 H 240 C 100,200 200,400 300,200 S 300,240 400,175 "
StrokeThickness="10" VerticalAlignment="Top" Width="456" />