EllipseGeometry Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет геометрию окружности или эллипса.
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геометрии.
EllipseGeometry Compared to 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 |
Получает или задает значение X-радиуса EllipseGeometry. |
RadiusY |
Получает или задает значение y-радиуса EllipseGeometry. |
Transform |
Получает или задает объект Transform, примененный к Geometry. (Унаследовано от Geometry) |
Методы
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Применяет AnimationClock к заданному DependencyProperty. Если свойство уже анимировано, используется эстафетное поведение SnapshotAndReplace. (Унаследовано от Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Применяет AnimationClock к заданному DependencyProperty. Если свойство уже является анимированным, используется указанное поведение HandoffBehavior. (Унаследовано от Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Применяет анимацию к указанному DependencyProperty. Анимация начинается при отрисовке следующего кадра. Если указанное свойство уже анимировано, используется поведение перемещения SnapshotAndReplace. (Унаследовано от Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Применяет анимацию к указанному DependencyProperty. Анимация начинается при отрисовке следующего кадра. Если указанное свойство уже является анимированным, используется указанное поведение HandoffBehavior. (Унаследовано от Animatable) |
CheckAccess() |
Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
ClearValue(DependencyProperty) |
Очищает локальное значение свойства. Очищаемое свойство задается идентификатором DependencyProperty. (Унаследовано от DependencyObject) |
ClearValue(DependencyPropertyKey) |
Очищает локальное значение доступного только для чтения свойства. Очищаемое свойство задается ключом DependencyPropertyKey. (Унаследовано от DependencyObject) |
Clone() |
Создает изменяемый клон данного объекта EllipseGeometry, делая глубокие копии значений этого объекта. При копировании свойств зависимостей этот метод копирует ссылки на ресурсы и привязки данных (которые могут уже не быть разрешимыми), но не копирует анимации и их текущие значения. |
CloneCore(Freezable) |
Делает экземпляр клоном (глубокой копией) указанного объекта Freezable, используя базовые (без анимации) значения свойств. (Унаследовано от Freezable) |
CloneCurrentValue() |
Создает модифицируемый клон данного объекта EllipseGeometry, делая глубокие копии текущих значений этого объекта. Ссылки на ресурсы, привязки данных и анимации не копируются, но копируются их текущие значения. |
CloneCurrentValueCore(Freezable) |
Делает экземпляр изменяемым клоном (глубокой копией) указанного объекта Freezable с использованием текущих значений свойств. (Унаследовано от Freezable) |
CoerceValue(DependencyProperty) |
Приводит значение указанного свойства зависимостей. Это осуществляется путем вызова какой-либо функции CoerceValueCallback, указанной в метаданных свойства зависимостей, которое существует в вызывающем объекте DependencyObject. (Унаследовано от DependencyObject) |
CreateInstance() |
Инициализирует новый экземпляр класса Freezable. (Унаследовано от Freezable) |
CreateInstanceCore() |
Если реализуется в производном классе, создает новый экземпляр производного класса Freezable. (Унаследовано от Freezable) |
Equals(Object) |
Определяет, является ли указанный DependencyObject эквивалентом текущего DependencyObject. (Унаследовано от DependencyObject) |
FillContains(Geometry) |
Указывает, содержится ли заданный объект Geometry целиком в текущей геометрии. (Унаследовано от Geometry) |
FillContains(Geometry, Double, ToleranceType) |
Указывает, содержит ли текущая геометрия заданный объект Geometry с учетом заданного предела погрешности. (Унаследовано от Geometry) |
FillContains(Point) |
Определяет, содержит ли данная геометрия заданный объект Point. (Унаследовано от Geometry) |
FillContains(Point, Double, ToleranceType) |
Указывает, содержит ли данная геометрия заданный объект Point с учетом заданного предела погрешности. (Унаследовано от Geometry) |
FillContainsWithDetail(Geometry) |
Возвращает значение, описывающее пересечение текущей и заданной геометрий. (Унаследовано от Geometry) |
FillContainsWithDetail(Geometry, Double, ToleranceType) |
Возвращает значение, описывающее пересечение текущей и заданной геометрий с учетом заданного предела погрешности. (Унаследовано от Geometry) |
Freeze() |
Делает текущий объект неизменяемым и присваивает его свойству IsFrozen значение |
FreezeCore(Boolean) |
Делает данный объект Animatable неизменяемым или определяет, может ли он быть сделан неизменяемым. (Унаследовано от Animatable) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает не анимированное значение указанного объекта DependencyProperty. (Унаследовано от Animatable) |
GetArea() |
Получает заполненную область данного объекта Geometry. (Унаследовано от Geometry) |
GetArea(Double, ToleranceType) |
Получает область данного EllipseGeometry. |
GetAsFrozen() |
Создает фиксированную копию объекта Freezable, используя базовые (не анимационные) значения свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты. (Унаследовано от Freezable) |
GetAsFrozenCore(Freezable) |
Делает экземпляр зафиксированной копией указанного Freezable, используя базовые (без анимации) значения свойств. (Унаследовано от Freezable) |
GetCurrentValueAsFrozen() |
Создает фиксированную копию объекта Freezable с использованием текущих значений свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты. (Унаследовано от Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Создает текущий экземпляр замороженной копии указанного объекта Freezable. Если объект имеет анимированные свойства зависимостей, копируются их текущие анимированные значения. (Унаследовано от Freezable) |
GetFlattenedPathGeometry() |
Получает объект PathGeometry, являющийся кусочно-линейной аппроксимацией данного объекта Geometry. (Унаследовано от Geometry) |
GetFlattenedPathGeometry(Double, ToleranceType) |
Получает объект PathGeometry в пределах заданного допуска, являющийся кусочно-линейной аппроксимацией данного объекта Geometry. (Унаследовано от Geometry) |
GetHashCode() |
Возвращает хэш-код для данного объекта DependencyObject. (Унаследовано от DependencyObject) |
GetLocalValueEnumerator() |
Создает специализированный перечислитель для определения свойств зависимостей, которые локально установили значения для данного DependencyObject. (Унаследовано от DependencyObject) |
GetOutlinedPathGeometry() |
Получает объект PathGeometry в пределах заданного допуска, являющийся упрощенным контуром заполненной области данного объекта Geometry. (Унаследовано от Geometry) |
GetOutlinedPathGeometry(Double, ToleranceType) |
Получает объект PathGeometry в пределах заданного допуска, являющийся упрощенным контуром заполненной области данного объекта Geometry. (Унаследовано от Geometry) |
GetRenderBounds(Pen) |
Возвращает выровненный по осям прямоугольник, достаточно большой для того, чтобы вместить данную геометрию, после ее обведения заданным Pen. (Унаследовано от Geometry) |
GetRenderBounds(Pen, Double, ToleranceType) |
Возвращает выровненный по осям прямоугольник, достаточно большой для того, чтобы вместить данную геометрию, после ее обведения заданным Pen с использованием указанного коэффициента допуска. (Унаследовано от Geometry) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей в этом экземпляре DependencyObject. (Унаследовано от DependencyObject) |
GetWidenedPathGeometry(Pen) |
Получает PathGeometry, представляющий собой фигуру, определенную обводкой объекта Geometry, созданной заданным объектом Pen, с учетом заданного коэффициента допуска. (Унаследовано от Geometry) |
GetWidenedPathGeometry(Pen, Double, ToleranceType) |
Получает PathGeometry, представляющий собой фигуру, определенную обводкой объекта Geometry, созданной заданным объектом Pen, с учетом заданного коэффициента допуска. (Унаследовано от Geometry) |
InvalidateProperty(DependencyProperty) |
Повторно вычисляет действующее значение для указанного свойства зависимостей. (Унаследовано от DependencyObject) |
IsEmpty() |
Определяет, является ли данный объект EllipseGeometry пустым. |
MayHaveCurves() |
Определяет, может ли данный объект EllipseGeometry иметь криволинейные сегменты. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
OnChanged() |
Вызывается при изменении текущего объекта Freezable. (Унаследовано от Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Обеспечивает создание соответствующих указателей контекста для элемента данных типа DependencyObjectType, который был только что задан. (Унаследовано от Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Этот элемент поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода. (Унаследовано от Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Переопределяет реализацию DependencyObject для OnPropertyChanged(DependencyPropertyChangedEventArgs), чтобы также вызвать любой обработчик Changed в ответ на изменение свойства зависимостей типа Freezable. (Унаследовано от Freezable) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если таковое существует. (Унаследовано от DependencyObject) |
ReadPreamble() |
Обеспечивает доступ к Freezable из допустимого потока. Наследники объекта Freezable должны вызывать данный метод в начале любого API, который считывает элементы данных, не являющиеся свойствами зависимостей. (Унаследовано от Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Задает значение свойства зависимостей, не меняя источник значения. (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей, указанного идентификатором этого свойства. (Унаследовано от DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Задает локальное значение свойства зависимости только для чтения, определяемое идентификатором DependencyPropertyKey свойства зависимостей. (Унаследовано от DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Возвращает значение, которое указывает, следует ли процессам сериализации выполнять сериализацию значения для предоставленного свойства зависимостей. (Унаследовано от DependencyObject) |
ShouldSerializeTransform() |
Получает значение, которое указывает, должно ли значение свойства Transform быть сериализовано. (Унаследовано от Geometry) |
StrokeContains(Pen, Point) |
Определяет, содержится ли заданный объект Point в обводке, полученной путем применения заданного Pen к данной геометрии. (Унаследовано от Geometry) |
StrokeContains(Pen, Point, Double, ToleranceType) |
Определяет, содержится ли заданный объект Point в обводке, полученной путем применения заданного Pen к данной геометрии, с учетом заданного предела погрешности. (Унаследовано от Geometry) |
StrokeContainsWithDetail(Pen, Geometry) |
Возвращает значение, описывающее пересечение между заданным объектом Geometry и обводкой, созданной путем применения заданного объекта Pen к текущей геометрии. (Унаследовано от Geometry) |
StrokeContainsWithDetail(Pen, Geometry, Double, ToleranceType) |
Получает значение, описывающее пересечение между заданным объектом Geometry и обводкой, созданной путем применения заданного объекта Pen к текущей геометрии с учетом заданного предела погрешности. (Унаследовано от Geometry) |
ToString() |
Создает строковое представление объекта на базе региональных параметров. (Унаследовано от Geometry) |
ToString(IFormatProvider) |
Создает строковое представление данного объекта с учетом сведений о форматировании, связанных с определенным языком и региональными параметрами. (Унаследовано от Geometry) |
VerifyAccess() |
Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
WritePostscript() |
Вызывает событие Changed для объекта Freezable и вызывает его метод OnChanged(). Классы, производные от Freezable, должны вызывать этот метод в конце любого API, который изменяет члены класса, не сохраненные в виде свойств зависимостей. (Унаследовано от Freezable) |
WritePreamble() |
Проверяет, что объект Freezable не заморожен и доступ к нему осуществляется из допустимого контекста потока. Наследники объекта Freezable должны вызывать данный метод в начале любого API, который выполняет запись в элементах данных, не являющихся свойствами зависимостей. (Унаследовано от Freezable) |
События
Changed |
Происходит, когда изменяется класс Freezable или объект, который входит в его состав. (Унаследовано от Freezable) |
Явные реализации интерфейса
IFormattable.ToString(String, IFormatProvider) |
Форматирует значение текущего экземпляра, используя указанный формат. (Унаследовано от Geometry) |