EllipseGeometry 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表圓形或橢圓形的幾何。
public ref class EllipseGeometry sealed : System::Windows::Media::Geometry
public sealed class EllipseGeometry : System.Windows.Media.Geometry
type EllipseGeometry = class
inherit Geometry
Public NotInheritable Class EllipseGeometry
Inherits Geometry
- 繼承
範例
下列範例使用兩 EllipseGeometry 個 GeometryDrawing 物件來定義 的內容。 這個範例會產生下列輸出:
兩個 EllipseGeometry 物件
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SDKSample
{
public class GeometryDrawingExample : Page
{
public GeometryDrawingExample()
{
//
// Create the Geometry to draw.
//
GeometryGroup ellipses = new GeometryGroup();
ellipses.Children.Add(
new EllipseGeometry(new Point(50,50), 45, 20)
);
ellipses.Children.Add(
new EllipseGeometry(new Point(50, 50), 20, 45)
);
//
// Create a GeometryDrawing.
//
GeometryDrawing aGeometryDrawing = new GeometryDrawing();
aGeometryDrawing.Geometry = ellipses;
// Paint the drawing with a gradient.
aGeometryDrawing.Brush =
new LinearGradientBrush(
Colors.Blue,
Color.FromRgb(204,204,255),
new Point(0,0),
new Point(1,1));
// Outline the drawing with a solid color.
aGeometryDrawing.Pen = new Pen(Brushes.Black, 10);
//
// Use a DrawingImage and an Image control
// to display the drawing.
//
DrawingImage geometryImage = new DrawingImage(aGeometryDrawing);
// Freeze the DrawingImage for performance benefits.
geometryImage.Freeze();
Image anImage = new Image();
anImage.Source = geometryImage;
anImage.Stretch = Stretch.None;
anImage.HorizontalAlignment = HorizontalAlignment.Left;
//
// Place the image inside a border and
// add it to the page.
//
Border exampleBorder = new Border();
exampleBorder.Child = anImage;
exampleBorder.BorderBrush = Brushes.Gray;
exampleBorder.BorderThickness = new Thickness(1);
exampleBorder.HorizontalAlignment = HorizontalAlignment.Left;
exampleBorder.VerticalAlignment = VerticalAlignment.Top;
exampleBorder.Margin = new Thickness(10);
this.Margin = new Thickness(20);
this.Background = Brushes.White;
this.Content = exampleBorder;
}
}
}
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="PresentationOptions"
Margin="20" Background="White">
<Border BorderBrush="Gray" BorderThickness="1"
HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="10">
<Image Stretch="None" HorizontalAlignment="Left">
<Image.Source>
<DrawingImage PresentationOptions:Freeze="True">
<DrawingImage.Drawing>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<!-- Create a composite shape. -->
<GeometryGroup>
<EllipseGeometry Center="50,50" RadiusX="45" RadiusY="20" />
<EllipseGeometry Center="50,50" RadiusX="20" RadiusY="45" />
</GeometryGroup>
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<!-- Paint the drawing with a gradient. -->
<LinearGradientBrush>
<GradientStop Offset="0.0" Color="Blue" />
<GradientStop Offset="1.0" Color="#CCCCFF" />
</LinearGradientBrush>
</GeometryDrawing.Brush>
<GeometryDrawing.Pen>
<!-- Outline the drawing with a solid color. -->
<Pen Thickness="10" Brush="Black" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Border>
</Page>
備註
使用 EllipseGeometry 類別搭配 Path 專案或 GeometryDrawing 來繪製橢圓形,或搭配 Clip 的 屬性 UIElement 來定義橢圓形剪輯區域。 類別 EllipseGeometry 也有許多其他用途。 如需 的詳細資訊 EllipseGeometry ,請參閱 Geometry 概觀。
EllipseGeometry 與 Ellipse 比較
類別 Ellipse 具有 Fill 、 Stroke 和其他缺少的 EllipseGeometry 轉譯屬性。 類別 Ellipse 是 , FrameworkElement 因此會參與配置系統;它可以當做支援 UIElement 子系之任何元素的內容使用。
另一方面,類別 EllipseGeometry 只會定義橢圓形的幾何,而且無法自行呈現。 由於其簡單性,因此具有更廣泛的用途。
Freezable 功能
EllipseGeometry是 物件的 Freezable 類型,因此可以凍結以改善效能。 如需凍結和複製等功能的相關資訊 Freezable ,請參閱 Freezable 物件概觀。
建構函式
EllipseGeometry() |
初始化 EllipseGeometry 類別的新執行個體。 |
EllipseGeometry(Point, Double, Double) |
將 EllipseGeometry 類別的新執行個體初始化為橢圓形,這個橢圓形具有所指定中心位置、X 半徑以及 Y 半徑。 |
EllipseGeometry(Point, Double, Double, Transform) |
初始化 EllipseGeometry 類別的新執行個體,這個執行個體具有所指定的位置、大小以及轉換。 |
EllipseGeometry(Rect) |
初始化 EllipseGeometry 類別的新執行個體,這個執行個體的水平直徑等於所傳遞 Rect 的寬度、垂直直徑等於所傳遞 Rect 的長度,而且中心點位置等於所傳遞 Rect 的中心。 |
欄位
CenterProperty |
識別 Center 相依性屬性。 |
RadiusXProperty |
識別 RadiusX 相依性屬性。 |
RadiusYProperty |
識別 RadiusY 相依性屬性。 |
屬性
Bounds |
取得 Rect,這個項目表示這個 EllipseGeometry 的週框方塊。 這個方法並不會視為可能透過筆劃新增的額外區域。 |
CanFreeze |
取得值,指出是否可以將物件設為不可修改。 (繼承來源 Freezable) |
Center |
取得或設定 EllipseGeometry 的中心點。 |
DependencyObjectType |
DependencyObjectType取得包裝這個實例之 CLR 型別的 。 (繼承來源 DependencyObject) |
Dispatcher |
取得與這個 Dispatcher 關聯的 DispatcherObject。 (繼承來源 DispatcherObject) |
HasAnimatedProperties |
取得值,這個值表示是否有一個或多個 AnimationClock 物件與這個物件的任何一個相依性屬性相關聯。 (繼承來源 Animatable) |
IsFrozen |
取得值,該值表示物件目前是否可修改。 (繼承來源 Freezable) |
IsSealed |
取得值,這個值表示此執行個體目前是否已密封 (唯讀)。 (繼承來源 DependencyObject) |
RadiusX |
取得或設定 EllipseGeometry 的 X 半徑值。 |
RadiusY |
取得或設定 EllipseGeometry 的 Y 半徑值。 |
Transform |
取得或設定套用至 Transform 的 Geometry 物件。 (繼承來源 Geometry) |
方法
事件
Changed |
發生於 Freezable 或所含的物件遭到修改時。 (繼承來源 Freezable) |
明確介面實作
IFormattable.ToString(String, IFormatProvider) |
使用指定的格式,格式化目前執行個體的值。 (繼承來源 Geometry) |