WPF的图形微语言

WPF的图形微语言

前言

WPF为定义几何图形增加了一种更简明的替换语法,通过该语法可用更少的标记表示详细的图形,这种语法称为图形微语言,并且由于应用于Path元素,也称为路径微语言。

示例

使用两条闭合路径创建了一个基本三角形

xml 复制代码
<Path Stroke="Blue">
	<Path.Data>
		<PathGeometry>
			<PathFigure IsClosed="True" StartPoint="10,100">
				<LineSegment Point="100,100"/>
				<LineSegment Point="100,50"/>
			</PathFigure>
		</PathGeometry>
	</Path.Data>
</Path>

使用微语言创建该图形

xml 复制代码
<Path Stroke="Blue" Data="M 10,100 L 100,100 L 100,50 Z"/>

这个路径使用一个包含4个命令序列,第一个命令M创建PathFigure,并将起点设置为(10,100),接下来的两个命令L创建线段,最后一个命令Z结束PathFigure,并将IsClose属性设置为true,这个字符串的逗号是可选的,同样命令及其参数之间的空格也是可选的,但在相邻的两个参数之间以及命令之间要保留一个空格。

进一步精简为下面的形式:

xml 复制代码
<Path Stroke="Blue" Data="M10 100 L100 100 L100 50 Z"/>

当使用微语言创建几何图形时,实际上是创建了StreamGeometry对象而不是PathGeometry对象,因此,以后再代码中不能修改图形。如果这是不能接受的,可显示的创建PathGeometry,但使用相同的语法定义其PathFigure对象几何。

xml 复制代码
<Path Stroke="Blue">
	<Path.Data>
		<PathGeometry Figures="M 10,100 L 100,100 L 100,50 Z"/>
	</Path.Data>
</Path>
名称 说明
F value 设置Geometry.FillRule属性。0表示EvenOdd,1表示NoneZero。如果决定使用该命令,就必须将该命令放在字符串的开头
M x,y 为几何图形创建新的PathFigure对象,并设置其起点。
L x,y 创建一条到指定点的LineSegment几何图形。
H x,y 使用指定的X值创建一条水平的LineSegment几何图形,并保持Y值不变。
V x,y 使用指定的Y值创建一条水平的LineSegment几何图形,并保持X值不变。
A radiusX,radiusY 创建一条到指定点的ArgSegment线段。
C x1,y1,x2,y2 x,y 创建到指定点的贝塞尔曲线,使用(x1,y1)和(x2,y2)作为控制点。
Q x1,y1 x,y 创建到指定点的二次贝塞尔曲线,使用一个控制点(x1,y1)。
S x2,y2 x,y 通过将前一条贝塞尔曲线的第二个控制点作为新建贝塞尔曲线的第一个控制点,从而创建一条光滑的贝塞尔曲线。
Z 结束当前PathFigure对象,并将IsClosed属性设置为true。如果不希望将IsClosed属性设置为true,就不必使用该命令。如果希望开始一个新的PathFigure对象或者结束字符串,只需使用M命令
相关推荐
明耀12 小时前
WPF TabControl 设置item不能点击
wpf
军训猫猫头14 小时前
20.抽卡只有金,带保底(WPF) C#
ui·c#·wpf
明耀14 小时前
WPF 设置平均布局 如果隐藏的话,能够自动扩展
wpf
晚安苏州1 天前
WPF DataTemplate 数据模板
wpf
甜甜不吃芥末2 天前
WPF依赖属性详解
wpf
Hat_man_2 天前
WPF制作图片闪烁的自定义控件
wpf
晚安苏州3 天前
WPF Binding 绑定
wpf·wpf binding·wpf 绑定
wangnaisheng3 天前
【WPF】RenderTargetBitmap的使用
wpf
dotent·4 天前
WPF 完美解决改变指示灯的颜色
wpf
orangapple6 天前
WPF 用Vlc.DotNet.Wpf实现视频播放、停止、暂停功能
wpf·音视频