XAML几何绘图性

1.直线是最简单的图形。使用X1、Y1两个属性可以设置它的起点坐标,X2、Y2两个属 性则用来设置其终点坐标。控制起点/终点坐标就可以实现平行、交错等效果。 Stroke(笔触)属性的数据类型是Brush(画刷),凡是Brush的派生类均可用于给这个属性 赋值。因为WPF提供了多种渐变色画刷,所以画直线也可以画出渐变效果。同时,Line 的一些属性还帮助我们画出虚线以及控制线段终点的形状。下面的例子综合了这些属 性: Line.属性:是一个双精度字符串,指示用于勾勒 形状轮廓的虚线和间距的样式。 Line.属性:获取或设置一个 PenLineCap 枚举值,该值指定如何绘 制虚线的两端。属性:用于设置起点和终点的样 式,也是一个枚举值,枚举值矩形由笔触(Stroke,即边线)和填充(Fill)构成。Stroke属性的设置与Line一 样,Fill属性的数据类型是Brush。Brush是个抽象类,所以我们不可能拿一个Brush类的实 例为Fill属性赋值而只能用Brush派生类的实例进行赋值。WPF的绘图系统包含非常丰富 的Brush类型,常用的有: SolidColorBrush:实心画刷。在XAML中可以使用颜色名称字符串(如Red、Blue) 直接赋值。 Linear线性渐变画刷。色彩沿设定的直线方向、按设定的变化点进 行渐变。径向渐变画刷。色彩沿半径的方向、按设定的变化点进行渐 变,形成圆形填充。 ImageBrush:使用图片(Image)作为填充内容。 DrawingBrush:使用矢量图(Vector)和位图(Bitmap)作为填充内容。WPF中的每个控件都是由FE类派生来的,而 FE又是由Visual类的方法获得。获得这个可视化的形象后,我们可 以用这个形象进行填充,这就是VisualBrush。比如当我想把窗体上的某个控件拖拽 到另一个位置,当鼠标松开之前需要在鼠标指针下显示一个控件的“幻影”,这个“幻 影”就是用VisualBrush填充出来的一个矩形,并让矩形捕捉鼠标的位置、随鼠标移动。

2. 路径(Path)可以说是WPF绘图中最强大的工具,一来是因为它完全可以替代其他几种 图形,二来它可以将直线、圆弧、贝斯二曲线等基本元素结合进来,形成更复杂的图 形。路径最重要的一个属性是Data,Data的数据类型是Geometry(几何图形),我们正 是使用这个属性将一些基本的线段拼接起来、形成复杂的图形。 为Data属性赋值的语法有两种:一种是标签式的标准语法,另一种是专门用户绘制几 何图形的“路径标记语法”。我们借助标准语法认识各种基本线段,和学习绘制几何图 形的路径标记语法,想要使用Path绘制图形,首先要知道几何图形数据是如何组合在Data属性中的。Path 的Data属性是Geometry类,但Geometry类是个抽象类,所以我们不可能在XAML中直接 使用标签。Geometry的子类。Geometry子类包括: LineGeometry:直线几何图形。矩形几何图形。 EllipseGeometry:椭圆几何图形。 PathGeometry:路径几何图形。的轻量级替代品不支持Binding、动画等功能。:由多个基本几何图形联合在一起形成的单一几何图形。由多个基本几何图形组成在一起形成的几何图形组,用来绘制圆弧。 Point属性用来指明圆弧连接的终点; 圆弧截取自椭圆,Size属性即是完整椭圆的横轴半径和纵轴半径; SweepDirection属性指明圆弧是顺时针方向还是逆时针方向; 如果椭圆上的两点位置不对称,那么这两点的圆弧就会分为大弧和小弧,IsLargeArc 属性用于指明是否使用大弧去连接; RotationAngle属性用来指明圆弧母椭圆的旋转角度。

3.连接而成,按照标签式语法,每条线段(Segment)是一个标签、每个标签占据一行, 一个图形就要占去几十行代码。而这仅仅是一个图形,要组成一个完整的图画往往需要 十多个图形组合在一起,有可能占据数百行代码!幸好这种事情没有发生,因为我们可 以借助专供WPF绘图使用的路径标记语法(Path Markup Syntax)来极大地简化Path的 描述。 路径标记语法实际上就是各种线段的简记法,比如,可以简写为“L 150,5”,这个L就是路径标记语法的一个“绘图命令”。不仅 如此,路径标记语法还增加了一些更实在的绘图命令,比如H用来画水平直线,“H 180” 就是指从当前点画一条水平直线,终点的横坐标是180类似地还有V命令,用来画竖直直线。使用路径标记语法绘图时一般分三步:移动至起点->绘图->闭合图形,这三步使用的 命名稍有差别。移动到起点使用的是“移动命令”M;绘图使用的是绘图命令,如果图形是闭合的,需要使用“闭合命令”Z,这 样最后一条线段的终点与第一条线段的起点间会连接上一条直线段。 路径标记语法是不区分大小写的,所以A与a、H与h都是等价的。在路径标记语法中 使用两个double类型数值来表示一个点,第一个值表示横坐标(常记为x),第二个值表示 纵坐标(常记为y),两个数值既可以使用逗号分隔(x,y)又可以使用空格分隔(x y)。 由于路径标记语法中使用空格作为两个点之间的分隔,为了避免混淆,建议使用逗号作 为点横纵坐标的分隔符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值