Fdream's Blog
专注于WEB前端开发
Powered by Google

Silverlight中Path的Data属性中命令大小写的区别

13 晴天 2007-12
Fdream 发表于 Silverlight, 已被阅读 17453 次, 评论 0 条
关键词:silverlight
[ 阅读字体大小: ]

在Silverlight 1.0的SDK中说L和l是一样的,没有说有什么差别,今天偶然发现大写的L命令和小写的l命令是有区别的,后来依次测试V和v、H和h、A和a、C和c、Q和q等一系列命令都存在同样的区别。

一个简单的示例如下:

引用内容:

<Path Stroke="Blue" Data="M 40,20 V 50 H 50 l 60,60" />

<Path Stroke="Red" Data="M 40,20 V 50 h 50 l 60,60" Canvas.Top="100" />

如果没有区别,这两条折线的形状应该是一模一样的,而实际上它们是这样的:

如果觉得不够明显,可以看这个:

引用内容:

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

<Path Stroke="Black" Fill="Gray" Data="M 10,100 c 10,300 300,-200 300,100" Canvas.Top="100" />

后继续测试发现,如果使用大些命令时,不会改变坐标参照系,后面的坐标仍然是以父级Canvas的原点为原点,即所有的坐标都是相对于父级Canvas的,与上一个命令的坐标(笔触的当前位置)无关;而使用小写命令,则会改变坐标参照系,后面的坐标则是以上一个命令执行的坐标为原点,即以上一个命令的坐标(笔触的当前位置)为原点的。

在第一个示例中,使用H 50命令后,坐标系原点不变,此时终点的坐标是相对父级Canvas的(40,50)位置(与上一个命令无关),直线长度为50(终点的x坐标)-40(起点的x坐标)=10;在使用h 50命令后,坐标系原点变为上一个命令执行后的坐标(40,50),此时的终点相对父级Canvas的坐标是(90,50),直线长度为50,这从第一个折线图可以看出来。

因此,在Silverlight中,请注意Data属性中的大小写!

Related articles 您可能对这些文章也感兴趣:
Related comments 与该文相关的评论:(我也想说几句)
Add a comment 我来说两句: 
禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
arrow
用户名:   密码:  (匿名可不写) 同时注册?
验证码:   看不清?换个图片  看不清楚?换个图片

 
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.2031302 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号