Freigeben über


Gewusst wie: Erstellen einer zusammengesetzten Form

Dieses Beispiel zeigt, wie Sie zusammengesetzte Formen erstellen, indem Sie Geometry-Objekte verwenden, und diese anzeigen, indem Sie ein Path-Element verwenden. Im folgenden Beispiel werden eine LineGeometry, eine EllipseGeometry und eine RectangleGeometry zusammen mit GeometryGroup verwendet, um eine zusammengesetzte Form zu erstellen. Die Geometrien werden dann mithilfe eines Path-Elements gezeichnet.

Beispiel

<!-- 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.
            Dim myPath As New Path()
            myPath.Stroke = Brushes.Black
            myPath.StrokeThickness = 1
            Dim mySolidColorBrush As New SolidColorBrush()
            mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255)
            myPath.Fill = mySolidColorBrush

            ' Create the line geometry to add to the Path
            Dim myLineGeometry As New LineGeometry()
            myLineGeometry.StartPoint = New Point(10, 10)
            myLineGeometry.EndPoint = New Point(50, 30)

            ' Create the ellipse geometry to add to the Path
            Dim myEllipseGeometry As New EllipseGeometry()
            myEllipseGeometry.Center = New Point(40, 70)
            myEllipseGeometry.RadiusX = 30
            myEllipseGeometry.RadiusY = 30

            ' Create a rectangle geometry to add to the Path
            Dim myRectGeometry As New RectangleGeometry()
            myRectGeometry.Rect = New Rect(30, 55, 100, 30)

            ' Add all the geometries to a GeometryGroup.
            Dim myGeometryGroup As New GeometryGroup()
            myGeometryGroup.Children.Add(myLineGeometry)
            myGeometryGroup.Children.Add(myEllipseGeometry)
            myGeometryGroup.Children.Add(myRectGeometry)

            myPath.Data = myGeometryGroup

            ' Add path shape to the UI.
            Dim mainPanel As New StackPanel()
            mainPanel.Children.Add(myPath)
            Me.Content = mainPanel
// 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;

In der folgenden Abbildung wird die im vorherigen Beispiel erstellte Form dargestellt.

Zusammengesetzte Geometrie

Eine zusammengesetzte Geometrie, die mit einer GeometryGroup erstellt wird

Komplexere Formen, zum Beispiel Polygone und Formen mit gekrümmten Segmenten, können Sie mithilfe einer PathGeometry erstellen. Ein Beispiel für die Erstellung einer Form mithilfe einer PathGeometry finden Sie unter Gewusst wie: Erstellen einer Form mithilfe von PathGeometry. Obwohl in diesem Beispiel eine Form auf dem Bildschirm mithilfe eines Path-Elements gerendert wird, können Sie auch Geometry-Objekte verwenden, um den Inhalt eines GeometryDrawing- oder DrawingContext-Elements zu beschreiben. Sie können die Objekte auch für das Clipping und für Treffertests verwenden.

Dieses Beispiel gehört zu einem größeren Beispiel. Das vollständige Beispiel finden Sie unter Geometries Sample.