大佬教程收集整理的这篇文章主要介绍了Silverlight Path的Data生成,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Path的Data数据有下面几种生成方式:
首先是Path命令列表
下面这个地址有详细描述,Silverlight路径标记语法,我下面用表格的方式给出,更直观点。
说明:
类型 | 命令格式 | 解释 | |
移动指令 Move Command(M) | @H_612_52@m x,y比如:M 100,240 或 m 100,240 大写的 M 指示 x,y 是绝对值; 小写的 m 指示 x,y 是相对于上一个点的偏移量,如果是 (0,0),则表示不存在偏移。 当您在 move 命令之后列出多个点时,即使您指定的是线条命令,也将绘制出连接这些点的线。 |
||
绘制指令 (Draw Command) 通过使用一个大写或小写字母输入各命令: 其中大写字母表示绝对值, 小写字母表示相对值。 线段的控制点是相对于上一线段的终点而言的。 依次输入多个同一类型的命令时,可以省略重复的命令项; 例如,L 100,200 300,400 等同于 L 100,200 L 300,400。 |
直线:Line(L) |
格式: L 结束点坐标 或: l 结束点坐标。 |
比如:L 100,100 或 l 100 100。 坐标值可以使用X,y(中间用英文逗号隔开)或x y(中间用半角空格隔开)的形式。 |
水平直线: Horizontal line(H) |
格式: H x值 或 h x值 (x为System.Double类型的值) |
绘制从当前点到指定x坐标的直线。 比如:H 100或h 100,也可以是:H 100.00或h 100.00等形式。 |
|
垂直直线: Vertical line(V) |
V y值 或 v y值 (y为System.Double类型的值) |
绘制从当前点到指定y坐标的直线。 比如:V 100或y 100,也可以是:V 100.00或v 100.00等形式。 |
|
三次方程式贝塞尔曲线: |
C 第一控制点 第二控制点 结束点 或 c 第一控制点 第二控制点 结束点 |
通过指定两个控制点来绘制由当前点到指定结束点间的三次方程贝塞尔曲线。 比如:C 100,200 200,400 300,200 或 c 100,200 其中,点(100,200)为第一控制点,点(200,400)为第二控制点,点(300,200)为结束点。 |
|
二次方程式贝塞尔曲线: |
Q 控制点 结束点 或 q 控制点 结束点 |
通过指定的一个控制点来绘制由当前点到指定结束点间的二次方程贝塞尔曲线。 比如:q 100,200。其中,点(100,200)为控制点,点(300,200)为结束点。 |
|
平滑三次方程式贝塞尔曲线: |
S 控制点 结束点 或 s 控制点 结束点 |
通过一个指定点来“平滑地”控制当前点到指定点的贝塞尔曲线。 比如:S 100,300 |
|
平滑二次方程式贝塞尔曲线: |
T 控制点 结束点 或 t 控制点 结束点 |
与平滑三次方程贝塞尔曲线类似。在当前点与指定的终点之间创建一条二次贝塞尔曲线。控制点假定为前一个命令的控制点相对于当前点的反射。如果前一个命令不存在,或者前一个命令不是二次贝塞尔曲线命令或平滑的二次贝塞尔曲线命令,则此控制点就是当前点。 比如:T 100,300 |
|
椭圆圆弧: elliptical Arc(A) | A 尺寸 圆弧旋转角度值 优势弧的标记 正负角度标记 结束点 或: a 尺寸 圆弧旋转角度值 优势弧的标记 正负角度标记 结束点 |
在当前点与指定结束点间绘制圆弧。
比如:A 5,5 0 0 1 10,10 |
|
@L_197_30@指令 (close Command): 可选的@L_197_30@命令 |
用Z或z表示 | 用以将图形的首、尾点用直线连接,以形成一个封闭的区域。 | |
填充规则(fillRule) 如果省略此命令,则路径使用默认行为:即 EvenOdd。 如果指定此命令,则必须将其置于最前面。> |
EvenOdd 填充规则 | F0 指定 EvenOdd 填充规则。 | EvenOdd 确定一个点是否位于填充区域内的规则方法:从该点沿任意方向画一条无限长的射线,然后计算该射线在给定形状中因交叉而形成的路径段数。如果该数为奇数,则点在内部;如果为偶数,则点在外部。 |
Nonzero 填充规则 | F1 指定 Nonzero 填充规则。 | Nonzero 确定一个点是否位于路径填充区域内的规则方法:从该点沿任意方向画一条无限长的射线,然后检查形状段与该射线的交点。从 0 开始计数,每当线段从左向右穿过该射线时加 1,而每当路径段从右向左穿过该射线时减 1。计算交点的数目后,如果结果为 0,则说明该点位于路径外部。否则,它位于路径内部。 |
一些简单例子:
Xaml 文件
<@H_749_262@UserControl xmlns="http://scheR_403_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_403_11845@as.microsoft.com/winfx/2006/xaml" x:Class="SilverlightApplication_Test.MainPage" Width="640" Height="500"> <@H_749_262@Canvas BACkground="Black"> <@H_749_262@Path stroke="BlanchedAlmond" Data="M101,95 L269,95"/> <@H_749_262@Path stroke="Blue" Data="m101,95 l269,95"/> <@H_749_262@Path stroke="BlanchedAlmond" Data="M101,95 58,54 60,38"/> <@H_749_262@Path stroke="BurlyWood" Data="M30,185 H100"/> <@H_749_262@Path stroke="BurlyWood" Data="M30,185 v100"/> @H_749_262@Canvas> @H_749_262@UserControl>
Xaml 文件
<@H_749_262@UserControl xmlns="http://scheR_403_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_403_11845@as.microsoft.com/winfx/2006/xaml" x:Class="SilverlightApplication_Test.MainPage" Width="640" Height="500"> <@H_749_262@Canvas BACkground="Black"> <@H_749_262@Path stroke="AliceBlue" Data="M 150,50 c 80,3 8,60 120,30" /> <@H_749_262@Path stroke="Aqua" Data="M 70,150 Q 80,30 120,90" /> <@H_749_262@Path stroke="Azure" Data="M 90,150 s 118,3 190,90" /> <@H_749_262@Path stroke="RosyBrown" Data="M 350,110 t10,20 32,10" /> <@H_749_262@Path stroke="Red" Data="M 90,180 a 2 3 8 1 0 29,90" /> @H_749_262@Canvas> @H_749_262@UserControl>
Xaml 文件
<@H_749_262@UserControl xmlns="http://scheR_403_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_403_11845@as.microsoft.com/winfx/2006/xaml" x:Class="SilverlightApplication_Test.MainPage" Width="640" Height="500"> <@H_749_262@Canvas BACkground="Black"> <@H_749_262@Path stroke="AliceBlue" Data="F0 M 150,50 c 5,30 8,30 z" /> <@H_749_262@Path stroke="Red" Data="F1 M 95,90z" /> @H_749_262@Canvas> @H_749_262@UserControl>
执行效果,
更复杂的,建议还是用前2种方法吧。
参考资料:
silverlight中path对象使用总结
http://www.cnblogs.com/daizhj/archive/2008/07/14/1242181.html
Silverlight里C#绘制Path的方法
http://mcs.szu.edu.cn/user/zouzhxi/Article_53515
SilverLight 关于Path的Data生成问题
http://www.thinkaspx.com/wordpress/silverlight-on-the-path-of-the-data-generation-problem.Thinkaspx
Silverlight学习笔记--绘制与着色(上)
http://blog.joycode.com/ghj/archive/2009/11/24/115786.joy
乱弹琴 Silverlight 2.0 (14) 几何图形(Geometry)(二)路径标记语法
http://www.cnblogs.com/zxjay/archive/2008/04/18/1200692.html
以上是大佬教程为你收集整理的Silverlight Path的Data生成全部内容,希望文章能够帮你解决Silverlight Path的Data生成所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。