前言:Silverlight 2.0 Beta1 已经发布,加入了许多激动人心的新特性:WPF UI 框架、丰富的控件、丰富的网络支持、丰富的基础类库支持等。这是本人的学习笔记,写的比较乱,因此定名为乱弹琴Silverlight 2.0 系列文章。

本篇概要介绍几何图形(Geometry)。

使用 Geometry 类以及派生自它的其他类(如 EllipseGeometry、PathGeometry 和 CombinedGeometry),只定义形状的几何图形,无法呈现自身,不参与布局系统,其派生类可以作为UIElement的内容。

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Freezable
        System.Windows.Media.Animation.Animatable
          System.Windows.Media.Geometry
            System.Windows.Media.EllipseGeometry
            System.Windows.Media.GeometryGroup
            System.Windows.Media.LineGeometry
            System.Windows.Media.PathGeometry
            System.Windows.Media.RectangleGeometry

Geometry类可绘制直线、曲线、形状等二维几何图形,也可定义命中测试和剪辑区域,甚至可以定义动画。
Freezable 功能:由于继承自 Freezable 类,因此 Geometry 类提供了一些特殊功能:Geometry 对象可在多个对象之间共享、设为只读以提高性能、进行克隆以及设为线程安全等。

Geometory可以通过Path对象的Data属性来呈现。Path 对象可以绘制闭合或开放的形状、多个形状,甚至曲线形状。Path.Data用来获取或设置指定要绘制的形状的 Geometry。
PathGeometry 类提供了描绘由弧线、曲线和直线组成的多个复杂图形的方法。
PathGeometry 的核心是 PathFigure 对象的集合。PathFigure 自身又由一个或多个 PathSegment 对象组成,每个这样的对象均描绘图形的一条线段,线段有多种类型:

ArcSegment  在两个点之间创建一条椭圆弧线。
BezierSegment  在两个点之间创建一条三次方贝塞尔曲线。
LineSegment  在两个点之间创建一条直线。
PolyBezierSegment  创建一系列三次方贝塞尔曲线。
PolyLineSegment  创建一系列直线。
PolyQuadraticBezierSegment  创建一系列二次贝塞尔曲线。
QuadraticBezierSegment  创建一条二次贝塞尔曲线。

PathFigure 的 StartPoint 属性指定绘制第一条线段的起始点。后面的每条线段都以上一条线段的终点作为起点。

复合几何图形:使用 GeometryGroup,可以创建复合几何图形对象。

·GeometryGroup 类创建它所包含的 Geometry 对象的组合体,但不合并其面积。可以向 GeometryGroup 中添加任意数量的 Geometry 对象。


相关文章:

  • 2021-11-10
  • 2021-08-03
  • 2021-12-02
  • 2022-01-19
  • 2021-12-29
  • 2021-10-05
  • 2021-10-10
  • 2021-07-22
猜你喜欢
  • 2021-08-24
  • 2021-11-08
  • 2022-02-27
  • 2021-11-20
  • 2021-11-16
  • 2021-10-26
  • 2021-08-14
相关资源
相似解决方案