相关集合类:

clipboard.png
Geometry 类:从此抽象基类派生的类定义几何形状。 Geometry 对象可用于对二维图形数据进行剪裁、命中测试和呈现。

  1. 几何图形与形状比较

    1. System.Windows.Shapes.Shape 类拥有Geometry 及其派生类所没有的 Fill、 Stroke 和其他呈现属性。 Shape 类是一个 FrameworkElement,因而会参与布局系统;其派生类可用作支持 UIElement 子项的任何元素的内容。
    2. 另一方面,Geometry 类只定义形状的几何图形,无法呈现自身。 由于它十分简单,因而用途更加广泛。
  2. 可冻结功能:由于继承自 Freezable 类,因此 Geometry 类提供了一些特殊功能:Geometry 对象可按 资源中的方式进行声明、在多个对象之间共享、设为只读以提高性能、进行克隆以及设为线程安全。
  3. 对继承者的说明:虽然此类是抽象的,但不能公开扩展它。
  4. 几何图形组合方式:

    1. GeometryGroup 使用一个或多个 Geometry 对象创建复合几何图形。
    2. CombinedGeometry 使用指定的布尔操作组合由两个 Geometry 对象所描述的区域。
    3. Geometry 类的静态 Combine 方法与 CombinedGeometry 对象具有完全相同的行为方式。
  5. CombinedGeometry 类:

    1. 表示由两个 Geometry 对象组合定义的二维几何形状。
    2. GeometryCombineMode 属性指定如何组合两个几何图形。 请注意,CombinedGeometry 组合两个几何图形指定的区域,所以没有区域(例如 LineGeometry)的几何图形将在组合后消失。
    3. 使用 CombinedGeometry 执行联合操作时要谨慎,因为它会占用大量的 CPU 资源。 大多数情况下,使用 GeometryGroup 或 AddGeometry 的效果更佳。
    4. 仅当存在下列情况之一时,才使用 CombinedGeometry:

      1. 几何图形操作不是一个联合。
      2. 两个几何图形中任何一个都有一个 EvenOdd 的 FillRule 值,并且两个几何图形都是自相交的(即 FillRule ).
      3. 时间不是问题,但需要注意空间的使用(例如,如果几何图形只被创建一次并进行缓存)。 通常情况下,CombinedGeometry 生成的输出小于 AddGeometry。
      4. 生成的几何图形将被绘制或用于路径动画,且 AddGeometry 并不提供所需的轮廓。
  6. EllipseGeometry 类:表示圆或椭圆的几何图形。

    1. EllipseGeometry 与 Ellipse 的比较:

      1. Ellipse 类具有 Fill、 Stroke 以及 EllipseGeometry 所没有的其他呈现属性。 Ellipse 类是一个 FrameworkElement,因而会参与布局系统;它可用作支持 UIElement 子级的任何元素的内容。
      2. 另一方面,EllipseGeometry 类只定义椭圆的几何图形,无法呈现自身。 由于它十分简单,因而用途更加广泛。
    2. 将 EllipseGeometry 类与 Path 元素或 GeometryDrawing 一起使用可以绘制一个椭圆,将该类与 UIElement 的 Clip 属性一起使用可以定义一个椭圆形剪裁区域。
  7. LineGeometry 类:表示线条的几何图形。
    若要创建多条相互连接的线,请使用具有 PathFigure 和 PathGeometry 类的 LineSegment 或 Polyline 线段。
  8. RectangleGeometry 类:描述二维矩形。
  9. PathGeometry 类:表示一个可能由弧、曲线、椭圆、直线和矩形组成的复杂形状。

    1. 每个 PathGeometry 对象都可定义 PathFigure 对象的集合。
    2. 每个 PathFigure 对象都可由一个或多个 PathSegment 对象组成,例如 ArcSegment 和 LineSegment,它们实际上定义了自己的形状。
    3. PathGeometry 的填充区域通过以下方法定义:采用所有包含的 PathFigure 对象,这些对象的 IsFilled 属性设置为 true,并应用 FillRule 确定封闭区域。
  10. GeometryGroup 类:表示由其他 Geometry 对象组成的复合几何图形。

    1. GeometryGroup 也可从任意数量的几何图形对象中创建复合几何图形。
    2. GeometryGroup 使用 FillRule 属性指定其几何图形对象组合的方式。
    3. 值得注意的是, GeometryCollection 本身不是复合几何图形,但是 GeometryGroup 类却使用它来存储 Geometry 对象。
  11. StreamGeometry 类:定义几何形状,并使用 StreamGeometryContext 进行描述。 此几何图形是 PathGeometry 的轻量替代图形:它不支持数据绑定、动画或修改。

    1. 使用 StreamGeometry。 由于它的高效,StreamGeometry 类是描绘装饰物的理想选择。
    2. 如果 StreamGeometry 包含 Transform 或任何未描边或未填充的线段,则不能对其进行序列化。
    3. 与PathGeometry比较:两种 mini-language 是非常相似的。 只要可以使用 StreamGeometry,便总是可以使用 PathGeometry;如果您在创建路径之后不需要对其进行修改,请使用 StreamGeometry;如果您需要修改路径,请使用 PathGeometry。
  12. PathFigure 类:表示几何图形的一个子部分、一系列单独连接的二维几何线段。

    1. PathGeometry 由一个或多个图形组成,这些图形由 PathFigure 类表示。
    2. 每一个图形本身又由一条或多条由 PathSegment 类定义的线段组成。

李志玮
22 声望34 粉丝

求索~~


引用和评论

0 条评论