Path(路径)标记语法
本主题描述画路径的 Extensible Application Markup Language (XAML) 使用语法,Silverlight 支持强大而复杂的微语言供我们画出几何路径。
本主题包含以下小节:
先决条件
要理解本主题的内容,你应当对 Geometry 对象的基本功能有所了解。更多信息,请参见
Silverlight 几何图形概述。
路径微语言
Silverlight 提供微语言属性语法来画出几何路径。当你设置 Geometry 类型的属性时,比如 UIElement 的 Clip 属性,或 Path 元素的 Data 属性,你可以使用这种微语言属性语法来画出几何路径。下面的例子使用路径属性语法创建一个基本图形。
XAML |
---|
<Canvas |
有关空格的说明
为简短起见,这个语法中显示的是单个空格,但是,在单个空格的地方放置多个空格也是可以接受的。
两个数字之间实际上没有必要使用逗号或者空格隔开,但是,这种情况之适用于结果字符串含义明确的时候。例如,2..3
实际上是两个数字:“2.”和“.3.”,类似地,2-3
实际上表示“2”和“-3”。命令前面或后面的空格也不是必要的。
语法
Extensible Application Markup Language (XAML) 路径语法是由一个可选的 FillRule 值和一个或多个图形描述组成的。
路径 XAML 属性使用 |
---|
|
项目 | 描述 |
---|---|
fillRule |
指定路径是使用 EvenOdd 还是 NonZero FillRule(填充规则)
如果你省略这个命令,路径使用默认值 EvenOdd。如果你指定了这个命令,你必须将它放在第一位。 |
figureDescription |
由移动命令、画图命令和可选的关闭命令组成的图形。
moveCommand drawCommands |
moveCommand |
移动命令指定图形的启动,请参见 移动命令 小节。 |
drawCommands |
一个或多个画图命令画出图形的内容。请参见 画图命令 小节。 |
closeCommand |
可选的关闭命令封闭图形。请参见 关闭命令 小节 |
移动命令
指定一个图形的起点。
语法 |
---|
- 或者 -
|
项目 | 描述 |
---|---|
startPoint |
一个图形的起点。 |
大写的 M
表示 startPoint(起点) 是一个绝对值;小写的 m
表示 startPoint 是相对上一个点的偏移值,如果这个点不存在,则这个点为 (0,0) 。如果你在移动命令之后列出多个点,则这些点之间将画出一条线,即使你指定了画线命令。
画图命令
一
个画图命令可以包含多个形状命令。下面的形状命令使用使用:line(线)、horizontal line(水平线)、vertical
line(垂直线)、cubic Bezier curve(三次贝塞尔曲线)、 quadratic Bezier
curve(二次贝塞尔曲线)、smooth cubic Bezier curve(平滑三次贝塞尔曲线)、smooth quadratic
Bezier curve(平滑二次贝塞尔曲线)和 elliptical arc(椭圆弧)。
你必须使用大写或小写字母输入每个命令;大写字母表示绝对值,小写字母表示相对值;相对于前面例子终点部分的控制点。当连续输入相同类型的多个命令时,你可以省略重复发命令项;例如,L 100,200 300,400
与 L 100,200 L 300,400
是等同的。下表描述了 移动 和 画图 命令。
Line(画线)命令
在当前点和指定的终点直接画一条直线。l 20 30
和 L 20,30
都是有效的 line(画线)命令。
语法 |
---|
- or -
|
项目 | 描述 |
---|---|
endPoint |
线段的终点。 |
Horizontal Line(水平线)命令
Vertical Line(垂直线)命令
Cubic Bezier Curve(三次贝塞尔曲线)命令
通过两个控制点(controlPoint1 和 controlPoint2)在当前点和指定的终点直接画一条三次贝塞尔曲线。C 100,200 200,400 300,200
是一个合法的曲线命令。
语法 |
---|
- 或者 -
|
Quadratic Bezier Curve(二次贝塞尔曲线)命令
通过指定控制点(controlPoint)在当前点和指定的终点之间画一条二次贝塞尔曲线。q 100,200 300,200
是一个合法的二次贝塞尔曲线的命令。
语法 |
---|
- 或者 -
|
Smooth cubic Bezier curve (平滑三次贝塞尔曲线)命令
在
当前点和指定的终点之间画一条贝塞尔曲线。第一个控制点设置为相对于当前点上一个命令第二个控制点的对称点。如果没有上一个命令,或者前一个命令不是一个
三次贝塞尔曲线命令或平滑三次贝塞尔曲线命令,则认为第一个控制点与当前点重合。第二个控制点,也就是曲线的终点控制点,由 controlPoint2 指定。例如, S 100,200 200,300
就是一个合法的平滑三次贝塞尔曲线命令。
语法 |
---|
- 或者 -
|
Smooth quadratic Bezier curve (平滑二次贝塞尔曲线)命令
在当前点和指定的终点之间画一条二次贝塞尔曲线。控制点被认为是相对当前点的前一个命令的控制点的对称点。如果没有前面的命令,或者前面的命令不是一个二次贝塞尔曲线或者平滑二次贝塞尔曲线,则控制点与当前点重合。
语法 |
---|
- 或者 -
|
Elliptical Arc (椭圆弧)命令
在当前点和指定的终点之间画一个椭圆弧。
语法 |
---|
- 或者 -
|
Close(关闭)命令
结束当前的画图并在当前点和图形的起点之间画一条线段。该命令在图形的最后部分和第一部分之间画一条连接线(角)。
语法 |
---|
- 或者 -
|