请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
.NET Framework
PathGeometry 类
全部折叠/全部展开 全部折叠
此页面仅适用于
Microsoft Visual Studio 2008/.NET Framework 3.5

同时提供下列产品的其他版本:
.NET Framework 类库
PathGeometry 类

更新:2007 年 11 月

表示一个可能由弧、曲线、椭圆、直线和矩形组成的复杂形状。

命名空间:  System.Windows.Media
程序集:  PresentationCore(在 PresentationCore.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation

Visual Basic(声明)
<ContentPropertyAttribute("Figures")> _
Public NotInheritable Class PathGeometry _
    Inherits Geometry
Visual Basic (用法)
Dim instance As PathGeometry
C#
[ContentPropertyAttribute("Figures")]
public sealed class PathGeometry : Geometry
Visual C++
[ContentPropertyAttribute(L"Figures")]
public ref class PathGeometry sealed : public Geometry
J#
/** @attribute ContentPropertyAttribute("Figures") */
public final class PathGeometry extends Geometry
JScript
public final class PathGeometry extends Geometry
XAML 对象元素用法
<PathGeometry>
  Figures
</PathGeometry>

每个 PathGeometry 对象都可定义 PathFigure 对象的集合。每个 PathFigure 对象都可由一个或多个 PathSegment 对象组成,例如 ArcSegmentLineSegment,它们实际上定义了自己的形状。

PathGeometry 的填充区域通过以下方法定义:采用所有包含的 PathFigure 对象,这些对象的 IsFilled 属性设置为 true,并应用 FillRule 确定封闭区域。

本示例演示如何创建线段。若要创建线段,请使用 PathGeometryPathFigureLineSegment 类。

下面的示例绘制一个从 (10, 50) 到 (200, 70) 的 LineSegment。下图显示了最后生成的 LineSegment;为了显示坐标系,添加了网格背景。

从 (10,50) 绘制到 (200,700) 的 LineSegment

PathFigure 中的一个 LineSegment
xaml

在可扩展应用程序标记语言 (XAML) 中,可以使用属性语法来描述路径。

XAML
<Path Stroke="Black" StrokeThickness="1"  
  Data="M 10,50 L 200,70" />
xaml

(请注意,此属性语法实际上创建一个 StreamGeometry,这是 PathGeometry 的轻量版本。有关更多信息,请参见路径标记语法页。)

在 XAML 中,还可以使用对象元素语法来绘制线段。下面的示例与前面的 XAML 示例是等效的。

C#
PathFigure myPathFigure = new PathFigure();
myPathFigure.StartPoint = new Point(10, 50);

LineSegment myLineSegment = new LineSegment();
myLineSegment.Point = new Point(200, 70);

PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
myPathSegmentCollection.Add(myLineSegment);

myPathFigure.Segments = myPathSegmentCollection;

PathFigureCollection myPathFigureCollection = new PathFigureCollection();
myPathFigureCollection.Add(myPathFigure);

PathGeometry myPathGeometry = new PathGeometry();
myPathGeometry.Figures = myPathFigureCollection;

Path myPath = new Path();
myPath.Stroke = Brushes.Black;
myPath.StrokeThickness = 1;
myPath.Data = myPathGeometry;
XAML
<Path Stroke="Black" StrokeThickness="1">
  <Path.Data>
    <PathGeometry>
      <PathFigure StartPoint="10,50">
        <LineSegment Point="200,70" />
      </PathFigure>
    </PathGeometry>
  </Path.Data>
</Path>

此示例摘自一个更大的示例;有关完整的示例,请参见几何图形示例

更多代码

如何:创建椭圆弧此示例演示如何绘制椭圆弧。若要创建椭圆弧,请使用 PathGeometryPathFigureArcSegment 类。
如何:创建三次方贝塞尔曲线此示例演示如何创建三次方贝塞尔曲线。若要创建三次方贝塞尔曲线,请使用 PathGeometryPathFigureBezierSegment 类。 若要显示所生成的几何图形,请使用 Path 元素,或将该元素与 GeometryDrawingDrawingContext 一起使用。在下面的示例中,从 (10, 100) 到 (300, 100) 绘制三次方贝塞尔曲线。该曲线的控制点为 (100, 0) 和 (200, 200)。
如何:创建二次贝塞尔曲线 此示例演示如何创建二次贝塞尔曲线。 若要创建二次贝塞尔曲线,应使用 PathGeometryPathFigureQuadraticBezierSegment 类。
如何:创建复合形状 此示例演示如何使用 Geometry 对象创建复合形状并使用 Path 元素显示这些复合形状。在下面的示例中,将 LineGeometryEllipseGeometryRectangleGeometryGeometryGroup 一起使用以创建复合形状。然后,使用 Path 元素绘制这些几何图形。
如何:在 PathGeometry 内部创建多个子路径下面的示例演示如何在 PathGeometry 中创建多个子路径。若要创建多个子路径,可以为每个子路径创建一个 PathFigure
如何:控制复合形状的填充GeometryGroupPathGeometryFillRule 属性指定复合形状用来确定给定点是否是几何形状的一部分的“规则”。FillRule 有两个可能值:EvenOddNonzero。下面几节介绍如何使用这两个规则。
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利 | 商标 | 隐私权声明
Page view tracker