WPF PATH语法详解

WPF提供了了两种方法在Path中描述 图形数据,一种方法通过StreamGeometry的XAML代码表示形式,也是最简洁的表示形式。 示例如下:

<Path Stroke="Black" Data="M 100,240 C 510,300 80,100 300,160 H40 v80" />

另外一种方法则是通过PathGeometry进行描述 ,示例代码如下:

<PathGeometry Figures="M 10,100 C 10,300 300,-160 300,100" /> 

两种方式具有相同的图形描述效果,差别在于:使用StreamGeometry具有图形封闭的特点,不允许进行图形修改;而采用PathGeometry可以进行内容修改。

无论采用StreamGeometryhai'还是PathGeometry进行图形内容描述,均具有相同的图形绘制命令:

  1. 起点命令:M
  2. 终点命令:Z,表示封闭图形,让图形头尾相接;
  3. :Line(L) 
  4.  水平直线: Horizontal line(H) 
  5.  垂直直线: Vertical line(V) 
  6.  三次方程式贝塞尔曲线: Cubic Bezier curve(C) 
  7. 二次方程式贝塞尔曲线: Quadratic Bezier curve(Q) 
  8. 平滑三次方程式贝塞尔曲线: Smooth cubic Bezier curve(S) 
  9. 平滑二次方程式贝塞尔曲线: smooth quadratic Bezier curve(T) 
  10. 椭圆圆弧: elliptical Arc(A)

圆弧绘制示例:

 <Path x:Name="westSouthButton" Canvas.Left="10" Canvas.Top="10" Style="{StaticResource PathFirstStyle4}">
                <Path.Data>
                    <PathGeometry Figures="M 12.37,87.5 A 55,55 0 0 0 60,115" />
                </Path.Data>
 </Path>

表示从点12.37 87.5位置开始绘制弧线,

55,55: System.Windows.Size类型,指定椭圆圆弧X,Y方向上的半径值。
圆弧旋转角度值(rotationAngle):椭圆弧的旋转角度值。 
优势弧的标记(isLargeArcFlag):是否为优势弧,如果弧的角度大于等于180度,则设为1,否则为0。 
正负角度标记(sweepDirectionFlag):当正角方向绘制时设为1,否则为0。 
60,115:结束点坐标,System.Windows.Point类型。

猜你喜欢

转载自blog.csdn.net/u012846041/article/details/81625810
WPF