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将 类与 元素或 一GeometryDrawing起使用Path来绘制椭圆,或使用 Clip 的 UIElement 属性来定义椭圆形剪辑区域。 类 EllipseGeometry 还具有许多其他用途。 有关 的详细信息 EllipseGeometry,请参阅 Geometry Overview。
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) |