如果你觉得前面所讨论的绘制各种几何图形的方法过于复杂,那么,今天我们也来一次“减负”吧。当然,我们是很轻松的,本教程是不用考试的,也不会班级排名,仅仅为读者朋友们提供一种思路罢了。
本节我们聊一下路径标记法,有了这个东东,你会觉得绘制路径会轻松了不少,事不宜迟,路径标记法到底有多方便,先看一个实例再说吧。
- <Path VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
- Stroke="LightGreen" StrokeThickness="6"
- Data="M12,2 L35,28 175,69 H80 V260 M185,400 C60,40 135,100 300,250" />
看看效果图。
怎么样?是不是简洁了许多?
一、移动指令
这个好理解,就是移动到某个点,接下来绘制的一系列图形以该点作为起点,语法如下:
M表示绝对定位,m表示相对于上一个点的偏移量,如果移动指令后接着多个点,则会创建连接这些点的直线,看下面的例子。
- <Path HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Stroke="Yellow" StrokeThickness="6"
- Data="M50,26 124,39 220,97 m200,145 95,335"/>
先看运行效果。
注意上面的M与m的区别,距离上一个结束点X轴+200,Y轴+145的地方,也就是一个偏移量。
二、绘制指令
这里我仅仅列举几个例子,具体内容大家可以参考MSDN。
1、绘制直线。
语法:
例子:
- <Path HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Stroke="Yellow"
- StrokeThickness="6"
- Data="M21,15 L30,17 200,79 150,300 160,410"/>
运行效果。
2、贝塞尔曲线
(1)三次方贝塞尔曲线
语法:C 控制点1 控制点2 终点 ,或c 控制点1 控制点2 终点。
例子:
- <Path HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Stroke="Yellow"
- StrokeThickness="6"
- Data="M10,5 C60,75 150,160 30,200"/>
(2)二次贝塞尔曲线
语法:Q 控制点 终点 或 q 控制点 终点
例子:
- <Path HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Stroke="Yellow"
- StrokeThickness="6"
- Data="M10,5 Q200,55 200,385"/>
3、绘制弧线
语法:
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
- 或 -
a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
size:圆弧的大小,X表示X轴上的半径长度,Y表示Y轴上的半径度度。
rotationAngle:圆弧的角度。
isLargeArcFlag:如果弧线的角度应大于或等于 180 度,则设置为 1;否则设置为 0。
sweepDirectionFlag:如果弧线按照正角方向绘制,则设置为 1;否则设置为 0。
endPoint:终点。
例子:
- <Path HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Stroke="Yellow"
- StrokeThickness="6"
- Data="M10,30 A185,230 90 0 1 200,435"/>
也许你会发现,尽管使用这种方法,但是画起图来也是不方便,现在,我明白我为什么不重点叙述这些内容的原因了,对于XAML手动构图,我只是简单带过,在实际开发中,效率不高,而且难度较大。
下一节中,我向大家介绍一种更简单的绘图方案。
分享到:
相关推荐
iPhone开发Objective-C语法入门 iphone 入门 iphone 开发入门 iPhone开发Objective-C语法入门 iphone 入门 iphone 开发入门
Developers are racing to discover how to develop for Windows Phone 7—and there is no quicker resource to help you get up to speed than Windows Phone 7 Recipes. This book covers all aspects of ...
windows phone 开发 在线教程
windowsphone开发:类库和案例[借鉴].pdf
本书旨在分享强大的Microsoft编程工具(诸如Silverlight、XNA和Visual Studio 2010 Express Edition一类)的使用心得,介绍了如何使用现有的C#和.NET编程技能来开发一些Windows Phone 7应用程序。本书作者团队探讨了...
windows phone 开发书籍及资料
从monotouch和.net开发环境到objective-c和c#开发语言,从基于monotouch进行iphone开发的编程方法到应用程序的发布和销售等,《iPhone高级编程:使用Mono Touch和.NET/C#》涵盖了基于monotouch进行iphone应用程序...
在开发Windows Phone应用程序的时候,或多或少会与图片打交道,下面总结下Windows Phone 中处理图片的一些技巧
2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。现有Windows Phone 7手机都将无法升级至Windows Phone 8。 2014年3...
Windows Phone开发-XNA基础
windows phone7 开发的案例,内有完整的工程项目。
[Packt Publishing] Windows Phone 8 游戏开发教程 (英文版) [Packt Publishing] Windows Phone 8 Game Development (E-Book) ☆ 图书概要:☆ A practical guide to creating games for the Windows Phone 8 ...
开发基础篇介绍了Windows Phone 7的基本情况,主要包括开发坏境的搭建和基本的语法知识,为接下来的应用开发做好充分的准备; 开发技术篇介绍了常用控件、布局管理、数据存储、图形动画、多媒体、启动器与选择器、...
Objective-C是Mac软件开发领域最主要的开发语言。假如我们对面向对象的思维已经C语言都很熟悉的话,对于我们学习Objective-C将会非常有用。
内容提要: 本书对WindowsPhoneXNA游戏开发的流程进行了详细的讲解,对其核心内容和开发技巧进行了深入的说明。...本书还针对WindowsPhone8的新特性以及如何将WindowsPhone7游戏向WindowsPhone8上迁移做了详细的说明。
Windows Phone7是微软重新打造windows mobile品牌之后推出的一款产品。
2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。现有Windows Phone 7手机都将无法升级至Windows Phone 8。 2014年3...
2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。现有Windows Phone 7手机都将无法升级至Windows Phone 8。 2014年3...
仿Windows Phone博客导航源码 程序介绍: Windows Phone Blog Menu是一个Silverlight导航控件,看起来像Windows Phone 7。 控件中的tiles链接到web站点在你的博客中使用这个控件可以表达你对WP7的喜爱。 Windows...
WindowsPhone开发,包含聊天室案例开始,阅读器、天气预报、SignalR