前面示例中,其中一种形状Path使用Geometry来绘图。Geometry元素也用于其他地方,如用于DrawingBrush。
在某些方面,Geometry元素非常类似于形状。与Line、Ellipse和Rectangle形状一样,也有绘制这些形状的Geometry元素:LineGeometry、EllipseGeometry和RectangleGeometry。形状与几何图形有显著的区别。Shape是一个FrameworkElement,可以用于把派生自UIElement的任意类用作其子元素。FramewrokElement派生自UIElement。形状会参与系统的布局,并呈现自身。而Geometry类不呈现自身,特性与系统开销也比Shape类少。Geometry类直接派生自DependencyObject。
Path类使用Geometry来绘图。几何图形可用用Path的Data属性设置。可以设置的简单的几何图形元素有绘制椭圆的EllipseGeometry、绘制线条的LineGeometry和绘制矩形的RectangleGeometry。
1. 使用段的几何图形
也可以使用段来创建几何图形。几何图形类PathGeometry使用段来绘图。下面的代码段使用BezierSegment和LineSegment元素绘制一个红色的图形和一个绿色的图形,如下图所示,第一个BezierSegment在图形的起点(70,40)、终点(150,63)、控制点(90,37)和(130,46)之间绘制了一条贝塞尔曲线。下面的LineSegment使用贝塞尔曲线的终点和(120,110)绘制了一条线段: