相关集合类:
Geometry 类:从此抽象基类派生的类定义几何形状。 Geometry 对象可用于对二维图形数据进行剪裁、命中测试和呈现。
-
几何图形与形状比较
- System.Windows.Shapes.Shape 类拥有Geometry 及其派生类所没有的 Fill、 Stroke 和其他呈现属性。 Shape 类是一个 FrameworkElement,因而会参与布局系统;其派生类可用作支持 UIElement 子项的任何元素的内容。
- 另一方面,Geometry 类只定义形状的几何图形,无法呈现自身。 由于它十分简单,因而用途更加广泛。
- 可冻结功能:由于继承自 Freezable 类,因此 Geometry 类提供了一些特殊功能:Geometry 对象可按 资源中的方式进行声明、在多个对象之间共享、设为只读以提高性能、进行克隆以及设为线程安全。
- 对继承者的说明:虽然此类是抽象的,但不能公开扩展它。
-
几何图形组合方式:
- GeometryGroup 使用一个或多个 Geometry 对象创建复合几何图形。
- CombinedGeometry 使用指定的布尔操作组合由两个 Geometry 对象所描述的区域。
- Geometry 类的静态 Combine 方法与 CombinedGeometry 对象具有完全相同的行为方式。
-
CombinedGeometry 类:
- 表示由两个 Geometry 对象组合定义的二维几何形状。
- GeometryCombineMode 属性指定如何组合两个几何图形。 请注意,CombinedGeometry 组合两个几何图形指定的区域,所以没有区域(例如 LineGeometry)的几何图形将在组合后消失。
- 使用 CombinedGeometry 执行联合操作时要谨慎,因为它会占用大量的 CPU 资源。 大多数情况下,使用 GeometryGroup 或 AddGeometry 的效果更佳。
-
仅当存在下列情况之一时,才使用 CombinedGeometry:
- 几何图形操作不是一个联合。
- 两个几何图形中任何一个都有一个 EvenOdd 的 FillRule 值,并且两个几何图形都是自相交的(即 FillRule ).
- 时间不是问题,但需要注意空间的使用(例如,如果几何图形只被创建一次并进行缓存)。 通常情况下,CombinedGeometry 生成的输出小于 AddGeometry。
- 生成的几何图形将被绘制或用于路径动画,且 AddGeometry 并不提供所需的轮廓。
-
EllipseGeometry 类:表示圆或椭圆的几何图形。
-
EllipseGeometry 与 Ellipse 的比较:
- Ellipse 类具有 Fill、 Stroke 以及 EllipseGeometry 所没有的其他呈现属性。 Ellipse 类是一个 FrameworkElement,因而会参与布局系统;它可用作支持 UIElement 子级的任何元素的内容。
- 另一方面,EllipseGeometry 类只定义椭圆的几何图形,无法呈现自身。 由于它十分简单,因而用途更加广泛。
- 将 EllipseGeometry 类与 Path 元素或 GeometryDrawing 一起使用可以绘制一个椭圆,将该类与 UIElement 的 Clip 属性一起使用可以定义一个椭圆形剪裁区域。
-
- LineGeometry 类:表示线条的几何图形。
若要创建多条相互连接的线,请使用具有 PathFigure 和 PathGeometry 类的 LineSegment 或 Polyline 线段。 - RectangleGeometry 类:描述二维矩形。
-
PathGeometry 类:表示一个可能由弧、曲线、椭圆、直线和矩形组成的复杂形状。
- 每个 PathGeometry 对象都可定义 PathFigure 对象的集合。
- 每个 PathFigure 对象都可由一个或多个 PathSegment 对象组成,例如 ArcSegment 和 LineSegment,它们实际上定义了自己的形状。
- PathGeometry 的填充区域通过以下方法定义:采用所有包含的 PathFigure 对象,这些对象的 IsFilled 属性设置为 true,并应用 FillRule 确定封闭区域。
-
GeometryGroup 类:表示由其他 Geometry 对象组成的复合几何图形。
- GeometryGroup 也可从任意数量的几何图形对象中创建复合几何图形。
- GeometryGroup 使用 FillRule 属性指定其几何图形对象组合的方式。
- 值得注意的是, GeometryCollection 本身不是复合几何图形,但是 GeometryGroup 类却使用它来存储 Geometry 对象。
-
StreamGeometry 类:定义几何形状,并使用 StreamGeometryContext 进行描述。 此几何图形是 PathGeometry 的轻量替代图形:它不支持数据绑定、动画或修改。
- 使用 StreamGeometry。 由于它的高效,StreamGeometry 类是描绘装饰物的理想选择。
- 如果 StreamGeometry 包含 Transform 或任何未描边或未填充的线段,则不能对其进行序列化。
- 与PathGeometry比较:两种 mini-language 是非常相似的。 只要可以使用 StreamGeometry,便总是可以使用 PathGeometry;如果您在创建路径之后不需要对其进行修改,请使用 StreamGeometry;如果您需要修改路径,请使用 PathGeometry。
-
PathFigure 类:表示几何图形的一个子部分、一系列单独连接的二维几何线段。
- PathGeometry 由一个或多个图形组成,这些图形由 PathFigure 类表示。
- 每一个图形本身又由一条或多条由 PathSegment 类定义的线段组成。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。