WPF 路径标记语法

WPF 提供用于描述几何路径提供微型语言的两个类:StreamGeometryPathFigureCollection

使用StreamGeometry微型语言设置类型的属性时Geometry,如Clip的属性UIElementData属性Path元素。 下面的示例使用属性语法创建StreamGeometry

<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />

使用PathFigureCollection微型语言设置时Figures属性的PathGeometry

<Path Stroke="Black" Fill="Gray">
  <Path.Data>
    <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" />
  </Path.Data>
</Path>

用法选择:使用StreamGeometry不需要创建它; 修改的路径时使用PathGeometry如果需要修改的路径。

StreamGeometry XAML 属性用法
< 对象**属性 ="fillRulefigureDescriptionfigureDescription] * " ... />

可扩展应用程序标记语言 (XAML)属性使用语法PathFigureCollection由一个或多个图形说明组成。

PathFigureCollection XAML Attribute Usage
< 对象**属性 =" figureDescriptionfigureDescription] * " ... />
术语描述
fillRuleSystem.Windows.Media.FillRule

指定是否StreamGeometry使用EvenOddNonzero FillRule

F0 指定EvenOdd填充规则。
F1 指定Nonzero填充规则。

如果省略此命令时,子路径将使用默认行为,即EvenOdd。 如果指定该命令,须先设置命令。
figureDescription图形由一个移动命令,绘制命令和一个可选的关闭命令组成。

moveCommand drawCommands [ closeCommand ]
moveCommand用于指定图形起点的移动命令。 请参阅移动命令部分。
drawCommands用于描述图形内容的一个或多个绘图命令。 请参阅绘制命令部分。
closeCommand用于关闭图形的可选关闭命令。 请参阅关闭命令部分

移动命令

指定新图形的起点。

语法
M startPoint  /  m startPoint
术语描述
startPointSystem.Windows.Point     新图形的起点。

大写M指示startPoint是一个绝对值; 小写字母m指示startPoint是对前一点的偏移量或 (0,0) 如果不存在。 如果在移动命令之后列出多个点,可以绘制一条连接到这些点的直线,尽管已指定了直线命令。

绘制命令

绘制命令可以由几个形状命令组成。 以下形状命令可用:直线、水平线、竖线、三次贝塞尔曲线、二次贝塞尔曲线、平滑三次贝塞尔曲线、平滑二次贝塞尔曲线和椭圆弧。

可以使用大写或小写字母输入每个命令:大写字母表示绝对值,小写字母表示相对值:该线段的控制点相对于前面示例的终点。 当按顺序输入多个相同类型的命令,则可以省略重复的命令输入;例如,L 100,200 300,400等效于L 100,200 L 300,400

直线命令

在当前点和指定的终点之间创建一条直线。 l 20 30 并L 20,30是有效的示例命令。

语法
L endPoint   l endPoint
术语描述
endPointSystem.Windows.Point  线条的终点。

大写L指示endPoint是一个绝对值; 小写字母l指示endPoint是对前一点的偏移量或 (0,0) 如果不存在。

水平线命令

在当前点和指定的 x 坐标之间创建一条水平线。 H 90 是有效水平线命令的示例。

语法
H x  或者  h x
术语描述
xSystem.Double  线条终点的 x 坐标。

大写H指示x是一个绝对值; 小写字母h指示x是对前一点的偏移量或 (0,0) 如果不存在。

竖线命令

在当前点和指定的 y 坐标之间创建一条竖线。 v 90 是有效竖线命令的示例。

语法
V y- 或 -v y
术语描述
ySystem.Double  直线终点的 y 坐标。

大写V指示y是一个绝对值; 小写字母v指示y是对前一点的偏移量或 (0,0) 如果不存在。

三次贝塞尔曲线命令

通过使用两个指定的控制点创建当前点和指定的终结点之间的三次方贝塞尔曲线 (controlPoint1 和controlPoint2)。 C 100,200 200,400 300,200 是有效曲线命令的示例。

语法
C controlPoint1controlPoint2endPoint- 或 -
c controlPoint1controlPoint2endPoint
术语描述
controlPoint1System.Windows.Point曲线的第一个控制点,它决定曲线的起始切线。
controlPoint2System.Windows.Point曲线的第二个控制点,它决定曲线的结束切线。
endPointSystem.Windows.Point绘制曲线将通过的点。

二次贝塞尔曲线命令

创建二次贝塞尔曲线的当前点和指定的终结点之间使用指定的控制点 (controlPoint)。 q 100,200 300,200 为有效二次贝塞尔曲线命令的示例。

语法
Q controlPoint endPoint- 或 -q controlPoint endPoint
术语描述
controlPointSystem.Windows.Point曲线的控制点,它决定曲线的开始和结束切线。
endPointSystem.Windows.Point绘制曲线将通过的点。

平滑三次贝塞尔曲线命令

在当前点和指定的终点之间创建三次贝塞尔曲线。 假设第一控制点为相对当前点前一命令的第二控制点的反射。 如果没有前一命令或如果前一命令不是三次贝塞尔曲线命令或平滑三次贝塞尔曲线命令,则假设第一个控制点与当前点重合。 第二个控制点,由指定的曲线末尾的控制点controlPoint2。 例如,S 100,200 200,300是一个有效的平滑三次方贝塞尔曲线命令。

语法
S controlPoint2endPoint- 或 -s controlPoint2endPoint
术语描述
controlPoint2System.Windows.Point曲线的控制点,它决定曲线的结束切线。
endPointSystem.Windows.Point绘制曲线将通过的点。

平滑二次贝塞尔曲线命令

在当前点和指定的终点之间创建二次贝塞尔曲线。 假设控制点为相对于当前点前一命令的控制点的反射。 如果没有前一命令或如果前一命令不是二次贝塞尔曲线命令或平滑二次贝塞尔曲线命令,则控制点与当前点重合。

语法
T controlPoint endPoint- 或 -t controlPoint endPoint
术语描述
controlPointSystem.Windows.Point曲线的控制点,决定曲线的起点和曲线的切线。
endPointSystem.Windows.Point绘制曲线将通过的点。

椭圆弧命令

在当前点和指定的终点之间创建一个椭圆弧。

语法

A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

- 或 -a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

术语描述
sizeSystem.Windows.Size圆弧的 x 轴和 y 轴半径。
rotationAngleSystem.Double椭圆的旋转,以度为单位。
isLargeArcFlag如果圆弧角度应为 180 度或更大,请设置为 1,否则设置为 0。
sweepDirectionFlag如果以正角方向绘制圆弧,请设置为 1;否则设置为 0。
endPointSystem.Windows.Point绘制弧将通过的点。

关闭命令

结束当前图形,并创建一条将当前点连接到图形起点的直线。 此命令可以在图形最后一段与第一段之间创建一条连接线(角)。

语法
Z- 或 -z

点语法

描述一个点 x 和 y 坐标位置 (0,0) 是左上的角。

语法
x , y- 或 -x y
术语描述
xSystem.Double该点的 x 坐标。
ySystem.Double该点的 y 坐标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值