首先,我们为什么要使用WPF绘图 WPF 提供高级绘图和动画功能,以前只能从专用库(具体来说,就是 Microsoft Windows 图形设备接口 (GDI) 和 Microsoft Windows GDI+)使用这些功能。现在,WPF 提供对多媒体、向量图形、动画和内容撰写的集成支持,使得开发人员可以轻松地生成悦目的用户界面和内容。使用 Microsoft Visual Studio .NET 或者甚至文本编辑器(如 Microsoft Visual Studio .NET),可以创建矢量图形或复杂的动画并将媒体集成到应用程序中。 WPF几何绘图主要使用的是geometry。 msdn上的定义为:从此抽象基类派生的类定义几何形状。Geometry 对象可用于剪裁和呈现二维图形数据以及对其进行点击测试。 命名空间: System.Windows.Media
正如定义上所说geometry是基类,抽象基类,我们绘图时一般使用它的派生类。例如: EllipseGeometry、PathGeometry 和 CombinedGeometry 关于理论我们就了解这么多吧,如果有兴趣可以查看msdn:Geometry 概述。 现在我们来了解它的功能,使用geometry我们可以绘制 直线,椭圆,矩形。 分别使用 LineGeometry、EllipseGeometry 和RectangleGeometry 直接创建。 后面的文章中我会一一使用为大家带来实例。
当然大家可能发现了,还有几种类型是不包括的:弧线,贝塞尔曲线等等。这就需要使用到segment进行绘制。他们没有实现了geometry的类定义。 segment是包含在PathGeometry中的,PathGeometry派生自geometry,所以我们可以通过绘制PathGeometry 来绘制上述图形。 msdn有如下定义:
PathGeometry 类及其轻型等效项 StreamGeometry 类提供了描绘由弧线、曲线和直线组成的多个复杂图形的方法。 PathGeometry 的核心是 PathFigure 对象的集合;这些对象之所以这样命名是因为每个图形都描绘 PathGeometry 中的一个离散形状。每个 PathFigure 自身又由一个或多个 PathSegment 对象组成,每个这样的对象均描绘图形的一条线段。 线段有多种类型。 线段类型 说明 示例 ArcSegment 在两个点之间创建一条椭圆弧线。 BezierSegment 在两个点之间创建一条三次方贝塞尔曲线。 LineSegment 在两个点之间创建一条直线。 PolyBezierSegment 创建一系列三次方贝塞尔曲线。 请参见 PolyBezierSegment 类型页。 PolyLineSegment 创建一系列直线。 请参见 PolyLineSegment 类型页。 PolyQuadraticBezierSegment 创建一系列二次贝塞尔曲线。 请参见 PolyQuadraticBezierSegment 页。 QuadraticBezierSegment 创建一条二次贝塞尔曲线。 PathFigure 中的线段将合并为一个几何形状,该形状将每一条线段的终点作为下一条线段的起点。PathFigure 的 StartPoint 属性指定绘制第一条线段的起始点。后面的每条线段都以上一条线段的终点作为起点。例如,通过将 StartPoint 属性设置为 10,50 并创建 Point 属性设置为 10,150 的 LineSegment,可定义一条从 10,50 到 10,150 的竖线。 个人感觉微软大可不必这么麻烦,可以像framework2.0 中GDI+一样封装成类来使用,当然这也可能与vista,WPF的技术还不太成熟有关。 后面的相关学习实例希望我有时间将它完成。: |
|