내보내기(0) 인쇄
모두 확장

Geometry 클래스

업데이트: 2007년 11월

이 추상 기본 클래스에서 파생되는 클래스는 기하 도형을 정의합니다. Geometry 개체는 2차원 그래픽 데이터의 클리핑, 적중 테스트 및 렌더링에 사용할 수 있습니다.

네임스페이스:  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 클래스에는 FillStroke 속성뿐만 아니라 Geometry와 해당 파생 클래스에는 없는 기타 렌더링 속성이 있습니다. Shape 클래스는 FrameworkElement이므로 레이아웃 시스템에 포함되고 이 클래스의 파생 클래스는 UIElement의 자식 항목을 지원하는 요소의 내용으로 사용할 수 있습니다.

반면 Geometry 클래스는 단순히 기하 도형을 정의할 뿐이며 자체적으로 렌더링할 수 없습니다. 이 클래스는 단순하므로 보다 다양한 용도에 사용됩니다.

Freezable 기능:Geometry 클래스는 Freezable 클래스에서 상속되기 때문에 Geometry 개체에 몇 가지 특수 기능을 제공합니다. 예를 들어, 개체를 리소스로 선언하고, 여러 개체 간에 공유하고, 성능 향상을 위해 읽기 전용으로 설정하고, 복제하고, 스레드로부터 안전하게 보호할 수 있습니다. Freezable 개체에서 제공하는 여러 기능에 대한 자세한 내용은 Freezable 개체 개요를 참조하십시오.

상속자 참고 사항:

이 클래스는 추상 클래스이지만 공개적으로 확장할 수는 없습니다.

이 예제에서는 Geometry 개체를 사용하여 복합 도형을 만들고 Path 요소를 사용하여 이를 표시하는 방법을 보여 줍니다. 다음 예제에서는 LineGeometry, EllipseGeometryRectangleGeometryGeometryGroup과 함께 사용하여 복합 도형을 만듭니다. 그런 다음 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를 사용하여 도형을 만드는 방법을 보여 주는 예제는 방법: PathGeometry를 사용하여 도형 만들기를 참조하십시오. 이 예제에서는 Path 요소를 사용하여 도형을 화면에 렌더링하지만, Geometry 개체를 사용하여 GeometryDrawing 또는 DrawingContext의 콘텐츠를 설명할 수도 있습니다. 또한 클리핑 및 적중 테스트에도 사용할 수 있습니다.

이 예제는 보다 큰 샘플의 일부입니다. 전체 샘플은 기하 도형 샘플을 참조하십시오.

추가 코드

방법: PathGeometry를 사용하여 도형 만들기이 예제에서는 PathGeometry 클래스를 사용하여 도형을 만드는 방법을 보여 줍니다. PathGeometry 개체는 하나 이상의 PathFigure 개체로 구성되며 각 PathFigure는 다른 "모양"이나 도형을 나타냅니다. 각각의 PathFigure는 모양 또는 도형의 연결된 각 부분을 나타내는 하나 이상의 PathSegment 개체로 구성됩니다. 세그먼트 형식에는 LineSegment, ArcSegmentBezierSegment가 포함됩니다.
방법: EllipseGeometry에 애니메이션 효과 적용이 예제에서는 Path 요소 내에서 Geometry에 애니메이션 효과를 적용하는 방법을 보여 줍니다. 다음 예제에서는 PointAnimation을 사용하여 EllipseGeometryCenter에 애니메이션 효과를 적용합니다.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0에서 지원

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft