匯出 (0) 列印
全部展開

Geometry 類別

更新:2007 年 11 月

衍生自這個抽象基底類別的類別會定義幾何圖形。Geometry 物件可以用於裁剪、點擊測試和呈現 2D圖形資料。

命名空間:  System.Windows.Media
組件:  PresentationCore (在 PresentationCore.dll 中)

[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
[TypeConverterAttribute(typeof(GeometryConverter))]
public abstract class Geometry : Animatable, 
	IFormattable
/** @attribute LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable) */
/** @attribute TypeConverterAttribute(GeometryConverter) */
public abstract class Geometry extends Animatable implements IFormattable
public abstract class Geometry extends Animatable implements IFormattable
這是抽象類別。如需 XAML 中可用的衍生非抽象類別,請參閱 繼承階層架構。

Geometry 與 Shape 比較

System.Windows.Shapes.Shape 類別 (Class) 具有的 FillStroke 和其他呈現屬性,是 Geometry 和其衍生類別 (Derived Class) 缺少的。Shape 類別是一種 FrameworkElement,因此會參與配置系統。而它的衍生類別則可以用在支援 UIElement 子系的項目中,當成該項目的內容。

另一方面,Geometry 類別只能定義圖案的幾何,而且本身無法進行呈現。因為簡單,所以它受到廣泛地使用。

可凍結的功能:因為 Geometry 類別繼承自 Freezable 類別,所以會提供下列幾項特殊功能:可將 Geometry 物件宣告為資源、在多個物件之間共用、設為唯讀以改善效能、複製的物件和具備安全執行緒。如需 Freezable 物件提供之不同功能的詳細資訊,請參閱 Freezable 物件概觀

繼承者注意事項

雖然這個類別是抽象的,但是並未開放擴充。

本範例示範如何使用 Geometry 物件建立複合圖案,並使用 Path 項目顯示這些圖案。下列範例將 LineGeometryEllipseGeometryRectangleGeometry 搭配使用 GeometryGroup 來建立複合圖案。接著再使用 Path 項目繪製幾何圖形。

<!-- Displays the geometry. --> 
<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>

    <!-- Creates a composite shape from three geometries. -->
    <GeometryGroup FillRule="EvenOdd">
      <LineGeometry StartPoint="10,10" EndPoint="50,30" />
      <EllipseGeometry Center="40,70" RadiusX="30" RadiusY="30" />              
      <RectangleGeometry Rect="30,55 100 30" />
    </GeometryGroup>
  </Path.Data>
</Path>


// Create a Path to be drawn to the screen.
Path myPath = new Path();
myPath.Stroke = Brushes.Black;
myPath.StrokeThickness = 1;
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255);
myPath.Fill = mySolidColorBrush;

// Create the line geometry to add to the Path
LineGeometry myLineGeometry = new LineGeometry();
myLineGeometry.StartPoint = new Point(10, 10);
myLineGeometry.EndPoint = new Point(50, 30);

// Create the ellipse geometry to add to the Path
EllipseGeometry myEllipseGeometry = new EllipseGeometry();
myEllipseGeometry.Center = new Point(40, 70);
myEllipseGeometry.RadiusX = 30;
myEllipseGeometry.RadiusY = 30;

// Create a rectangle geometry to add to the Path
RectangleGeometry myRectGeometry = new RectangleGeometry();
myRectGeometry.Rect = new Rect(30, 55, 100, 30);

// Add all the geometries to a GeometryGroup.
GeometryGroup myGeometryGroup = new GeometryGroup();
myGeometryGroup.Children.Add(myLineGeometry);
myGeometryGroup.Children.Add(myEllipseGeometry);
myGeometryGroup.Children.Add(myRectGeometry);

myPath.Data = myGeometryGroup;

// Add path shape to the UI.
StackPanel mainPanel = new StackPanel();
mainPanel.Children.Add(myPath);
this.Content = mainPanel;


下圖顯示在上述範例中建立的圖案。

複合幾何

使用 GeometryGroup 建立的複合幾何

您可以使用 PathGeometry 建立較複雜的圖案 (例如多邊形和具有弧形片段的圖案)。如需如何使用 PathGeometry 建立圖案的範例,請參閱 HOW TO:使用 PathGeometry 建立圖案。雖然本範例使用 Path 項目將圖案呈現到螢幕上,但是您也可以使用 Geometry 物件描述 GeometryDrawingDrawingContext 的內容。這些物件也可用來裁剪 (Clipping) 和進行點擊測試。

本範例是完整範例的一部分;如需完整範例,請參閱幾何範例

更多程式碼

HOW TO:使用 PathGeometry 建立圖案本範例顯示如何使用 PathGeometry 類別建立圖案。PathGeometry 物件是由一個或多個 PathFigure 物件所組成,其中每個 PathFigure 各代表一個不同的「圖形」或圖案。每個 PathFigure 本身都是由一個或多個 PathSegment 物件所組成,其中每個物件各代表圖形或圖案的某個連接部分。區段類型包括 LineSegmentArcSegmentBezierSegment
HOW TO:建立 EllipseGeometry 的動畫本範例說明如何建立 Path 項目內 Geometry 的動畫。下列範例使用 PointAnimation 建立 EllipseGeometryCenter 屬性的動畫。

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

Windows Vista

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱.NET Framework 系統需求

.NET Framework

支援版本:3.5、3.0

社群新增項目

新增
顯示:
© 2014 Microsoft