Path(路径)标记语法
来源:互联网 发布:淘宝城三期规划 编辑:程序博客网 时间:2024/06/06 14:00
Path(路径)标记语法
本主题描述画路径的 Extensible Application Markup Language (XAML) 使用语法,Silverlight 支持强大而复杂的微语言供我们画出几何路径。
本主题包含以下小节:
- 先决条件
- 路径微语言
- 移动命令
- 画图命令
- 关闭命令
- 点语法
- 特殊值
- 相关主题
先决条件
要理解本主题的内容,你应当对 Geometry 对象的基本功能有所了解。更多信息,请参见Silverlight 几何图形概述。
路径微语言
Silverlight 提供微语言属性语法来画出几何路径。当你设置 Geometry 类型的属性时,比如 UIElement 的 Clip 属性,或 Path 元素的 Data 属性,你可以使用这种微语言属性语法来画出几何路径。下面的例子使用路径属性语法创建一个基本图形。
<Canvas
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Path Stroke="Black" Fill="Gray"
Data="M 10,100 C 10,300 300,-200 300,100" />
</Canvas>
有关空格的说明
为简短起见,这个语法中显示的是单个空格,但是,在单个空格的地方放置多个空格也是可以接受的。
两个数字之间实际上没有必要使用逗号或者空格隔开,但是,这种情况之适用于结果字符串含义明确的时候。例如,2..3
实际上是两个数字:“2.”和“.3.”,类似地,2-3
实际上表示“2”和“-3”。命令前面或后面的空格也不是必要的。
语法
Extensible Application Markup Language (XAML) 路径语法是由一个可选的 FillRule 值和一个或多个图形描述组成的。
<
object property ="
[fillRule] figureDescription[figureDescription]*" ... />
fillRule
指定路径是使用 EvenOdd 还是 NonZero FillRule(填充规则)
F0
指定使用 EvenOdd 填充规则;F1
指定使用 Nonzero 填充规则。
如果你省略这个命令,路径使用默认值 EvenOdd。如果你指定了这个命令,你必须将它放在第一位。
figureDescription
由移动命令、画图命令和可选的关闭命令组成的图形。
moveCommand drawCommands [
closeCommand ]
moveCommand
移动命令指定图形的启动,请参见 移动命令 小节。
drawCommands
一个或多个画图命令画出图形的内容。请参见 画图命令 小节。
closeCommand
可选的关闭命令封闭图形。请参见 关闭命令 小节
移动命令
指定一个图形的起点。
M
startPoint
- 或者 -
m
startPoint
startPoint
Point
一个图形的起点。
大写的 M
表示 startPoint(起点) 是一个绝对值;小写的 m
表示 startPoint 是相对上一个点的偏移值,如果这个点不存在,则这个点为 (0,0) 。如果你在移动命令之后列出多个点,则这些点之间将画出一条线,即使你指定了画线命令。
画图命令
一个画图命令可以包含多个形状命令。下面的形状命令使用使用:line(线)、horizontal line(水平线)、verticalline(垂直线)、cubic Bezier curve(三次贝塞尔曲线)、 quadratic Beziercurve(二次贝塞尔曲线)、smooth cubic Bezier curve(平滑三次贝塞尔曲线)、smooth quadraticBezier curve(平滑二次贝塞尔曲线)和 elliptical arc(椭圆弧)。
你必须使用大写或小写字母输入每个命令;大写字母表示绝对值,小写字母表示相对值;相对于前面例子终点部分的控制点。当连续输入相同类型的多个命令时,你可以省略重复发命令项;例如,L 100,200 300,400
与 L 100,200 L 300,400
是等同的。下表描述了 移动 和 画图 命令。
Line(画线)命令
在当前点和指定的终点直接画一条直线。l 20 30
和 L 20,30
都是有效的 line(画线)命令。
L
endPoint
- or -
l
endPoint
endPoint
线段的终点。
Horizontal Line(水平线)命令
在当前点和指定的 x 坐标直接画一条水平线。H 90
是合法的画水平线的例子。
H
x
- 或者 -
h
x
x
线段终点的 x 坐标。
Vertical Line(垂直线)命令
在当前点和指定的 y 坐标直接画一条垂直线。v 90
就是一个合法的画垂直线的命令。
V
y
- 或者 -
v
y
y
线段终点的 y 坐标。
Cubic Bezier Curve(三次贝塞尔曲线)命令
通过两个控制点(controlPoint1 和 controlPoint2)在当前点和指定的终点直接画一条三次贝塞尔曲线。C 100,200 200,400 300,200
是一个合法的曲线命令。
C
controlPoint 1 controlPoint 2 endPoint
- 或者 -
c
controlPoint 1 controlPoint 2 endPoint
controlPoint 1
第一个控制点,控制曲线的起始切线。
controlPoint 2
第二个控制点,控制曲线的终点切线。
endPoint
曲线要画的点。.
Quadratic Bezier Curve(二次贝塞尔曲线)命令
通过指定控制点(controlPoint)在当前点和指定的终点之间画一条二次贝塞尔曲线。q 100,200 300,200
是一个合法的二次贝塞尔曲线的命令。
Q
controlPoint endPoint
- 或者 -
q
controlPoint endPoint
controlPoint
曲线的控制点,控制曲线的起始和结束切线。
endPoint
曲线要画的点。
Smooth cubic Bezier curve (平滑三次贝塞尔曲线)命令
在当前点和指定的终点之间画一条贝塞尔曲线。第一个控制点设置为相对于当前点上一个命令第二个控制点的对称点。如果没有上一个命令,或者前一个命令不是一个三次贝塞尔曲线命令或平滑三次贝塞尔曲线命令,则认为第一个控制点与当前点重合。第二个控制点,也就是曲线的终点控制点,由 controlPoint2 指定。例如, S 100,200 200,300
就是一个合法的平滑三次贝塞尔曲线命令。
S
controlPoint 2 endPoint
- 或者 -
s
controlPoint 2 endPoint
controlPoint 2
曲线的控制点,控制曲线的终点切线。
endPoint
曲线要画的点
Smooth quadratic Bezier curve (平滑二次贝塞尔曲线)命令
在当前点和指定的终点之间画一条二次贝塞尔曲线。控制点被认为是相对当前点的前一个命令的控制点的对称点。如果没有前面的命令,或者前面的命令不是一个二次贝塞尔曲线或者平滑二次贝塞尔曲线,则控制点与当前点重合。
T
controlPoint endPoint
- 或者 -
t
controlPoint endPoint
controlPoint
曲线的控制点,控制曲线起始点和切线。
endPoint
曲线要画点。
Elliptical Arc (椭圆弧)命令
在当前点和指定的终点之间画一个椭圆弧。
A
size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
- 或者 -
a
size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
size
Size
弧度 x 和 y 径。
rotationAngle
椭圆的旋转角度(以度为单位)。
isLargeArcFlag
如果弧角应当大于 180 度则设置为 1,否则设置为 0。
sweepDirectionFlag
如果弧以正角方向(逆时针方向)画则设置为 1,否则设置为 0。
endPoint
Point
弧度终点。
Close(关闭)命令
结束当前的画图并在当前点和图形的起点之间画一条线段。该命令在图形的最后部分和第一部分之间画一条连接线(角)。
Z
- 或者 -
z
Point(点)语法
描述点的 x 和 y 坐标。
x ,
y
- 或者 -
x y
x
点的 x 坐标。
y
点点 y 坐标。
特殊值
如果不使用标准的数字值,你还可以指定下面的特殊值,这些值是大小写敏感的。
- Infinity
表示 Double 的正无穷大值。
- -Infinity
表示 Double 的负无穷大值。
- NaN
表示 Double 的 NaN 值。
你也可以使用科学计数法,例如,+1.e17
就是一个合法的值。
- Path(路径)标记语法
- 路径标记语法
- 路径标记语法
- Windows Phone开发(34):路径标记语法
- Windows Phone开发(34):路径标记语法
- 路径(path)题解
- Markdown (一种标记语言)简明语法
- PATH路径
- Path路径
- 路径path
- asp语法标记
- freemaker的标记语法
- DoxyGen常用语法标记
- Markdown 标记语法
- HTML标记语法
- 执行文件路径的变量:$PATH(PATH变量简介)
- 最大流算法之-增广路径(path augmentation)and压入与重标记算法(push-relable)
- 【改进floyed】最小密度路径(path)
- 新旧身份证合法性验证及相互转换算法
- web.config中AppSettings和ConnectionStrings的配置与区别及获取
- How to export only visible colm. in GridPanel
- Silverlight 基本形状和画图概述
- mysql创建功能函数格式化时间
- Path(路径)标记语法
- 呵呵
- 再谈《Hibernate+Spring+Struts2+ExtJS开发CRUD功能》
- 穷光蛋追到美女全程
- RMAN backup 脚本的修改。
- 将多个RSS/Atom整合成一条便于记忆的订阅地址
- Ant的入门级教程(1)?ANT 蚂蚁是什么?带有简单使用。
- 微软架构师谈编程语言发展
- VERIFY是什么意思