Windows Phone开发(34):路径标记语法

原文:Windows Phone开发(34):路径标记语法

如果你觉得前面所讨论的绘制各种几何图形的方法过于复杂,那么,今天我们也来一次“减负”吧。当然,我们是很轻松的,本教程是不用考试的,也不会班级排名,仅仅为读者朋友们提供一种思路罢了。

本节我们聊一下路径标记法,有了这个东东,你会觉得绘制路径会轻松了不少,事不宜迟,路径标记法到底有多方便,先看一个实例再说吧。

        <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<点坐标>

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、绘制直线。

语法:

L <结束点>或l <结束点>

例子:

    <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手动构图,我只是简单带过,在实际开发中,效率不高,而且难度较大。

下一节中,我向大家介绍一种更简单的绘图方案。

 

 

时间: 2014-03-05
Tags: windows, path

Windows Phone开发(34):路径标记语法的相关文章

Silverlight图形:路径标记语法

先决条件 您应当熟悉 Geometry 对象的基本功能. 路径 Mini-Language Silverlight 提供了可以将几何路径描述为 XAML 中的属性值的 mini-language.当您在 设置类型 Geometry 的属性(如 UIElement 的 Clip 属性或 Path 元素的 Data 属性)时, 就会使用这种 mini-language.下面的示例使用路径属性语法来创建形状. XAML <Canvas> <Path Stroke="Black&quo

Windows Phone开发(32):路径之PathGeometry

原文:Windows Phone开发(32):路径之PathGeometry 说起路径这玩意儿,其实说的就是Path类,它藏在命名空间System.Windows.Shapes下,应该好找,它有一个很重要的属性Data,你不妨在"对象浏览器"中把它抓出来看看,该属性为System.Windows.Media.Geometry类型,如果大家再查看一下,这个Geometry类是一个抽象类,就是因为它太抽象了,所以不能被实例化. 然后,我们看看它有哪些派生类? 1.EllipseGeomet

Windows App开发之开发准备

操作系统及SDK 操作系统 显而易见,想要开发Windows App就得在Windows 8/8.1/10上进行,老旧的Windows XP/Vista/7已经不能满足时代的需要了.当然,在Windows App的发展过程中,其本身也有着较大的变动,为了使用新的特性,建议使用Windows 10.我在写这个教程时,Windows 10正式版并未面世,因此暂时未介绍Windows 10上的新特性,随后会继续更新,欢迎您的继续关注. 操作系统除了在官网下载之外,还可以在DreamSpark等地方下载

【万里征程——Windows App开发】开发准备

操作系统及SDK 操作系统 如果打算开发Windows App,那么你的电脑就不能再用老旧的Windows 7了.推荐使用Windows 8.1.写这篇博客的时候,我用的操作系统是Windows 10 Pro Technical Preview [Build 10041]. 操作系统除了在官网下载之外,还可以在DreamSpark等地方下载.DreamSpark上除了Office其他微软操作系统.开发工具及其他软件对学生均免费开放. 另外再推荐一个网站:MSDN i tell you Visua

windows下开发并编译PHP扩展的方法

现在就简单说一在WINDOWS下开发PHP扩展的步骤: 首先需要准备的软件有: cygwin 安装路径e:\app\cygwin visual studio C++ 6.0, 修改环境变量,把已经安装好的PHP路径设置为环境变量.在这里,假设我的PHP安装目录是:e:\app\php5.2.5,那么我把WINDOWS环境变量后面加上这个安装目录.方便一会儿使用php.exe. PHP源代码,这里假设为e:\c_source_code\php-5.2.5 1.修改文件 "PHP源文件目录/ext/

Kinect for Windows SDK开发入门(十四)进阶指引 上

前面十三篇文章介绍了Kinect SDK开发中的各个方面的最基础的知识.正如本系列博闻标题那样,这些知识只是Kinect for windows SDK开发的入门知识.本文将会介绍Kinect进阶开发需要了解一些知识(beyond the basic). 读者可能会注意到,在学习了前面十三篇文章中关于Kinect开发的方方面面,如影像数据流.景深摄像机.骨骼追踪.麦克风阵列.语音识别等这些知识后,离开发出一些我们在网上看到的那些具有良好用户体验的Kinect应用程序还是显得捉襟见肘.Kinect

windows下开发并编译PHP扩展的方法_php技巧

现在就简单说一在WINDOWS下开发PHP扩展的步骤: 首先需要准备的软件有: cygwin 安装路径e:\app\cygwin visual studio C++ 6.0, 修改环境变量,把已经安装好的PHP路径设置为环境变量.在这里,假设我的PHP安装目录是:e:\app\php5.2.5,那么我把WINDOWS环境变量后面加上这个安装目录.方便一会儿使用php.exe. PHP源代码,这里假设为e:\c_source_code\php-5.2.5 1.修改文件 "PHP源文件目录/ext/

Windows Phone开发(10):常用控件(上)

原文:Windows Phone开发(10):常用控件(上) Windows Phone的控件有几个来源,和传统的桌面应用程序开发或Web开发一样,有默认提供的控件和第三方开者发布的控件.一般而言,如果不是过于复杂的界面布局,使用默认控件就足矣.相比之下,Android SDK中尽管提供了许多可视化控件,但你会发现,实际开发用到的并不多,而且很多控件完全只是摆设,既没有公开相应的操作方法也没有更多可用于开发者自行处理的监听器(这里我习惯翻译为监听器,在安卓里面没有像C#那样使用事件,而是new一

Windows Phone开发(15):资源

原文:Windows Phone开发(15):资源 活字印刷术是我国"四大发明"之一,毕昇在发明活字印刷术之后,他很快发现一个问题,随着要印刷资料的不断增加,要用到的汉字数目越来越多,于是,他必须寻找一种有效的办法去管理那些刻有汉字的立方体(暂且就叫立方体,其实的确是个立方体),所以,他就和助手们一起努力,为这些立方体进行记录,有标识地放好,在印刷过程中用到哪些字,就直接取出来,不用了就放回去,既环保又方便. 这就是资源,水.空气.阳光也是资源,煤.铁矿物也是资源,只不过有些可再生,有