Rect Struktur

Definition

Beschreibt die Breite, Höhe und Position eines Rechtecks.

public value class Rect : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.RectConverter))]
[System.Serializable]
public struct Rect : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.RectConverter))]
public struct Rect : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.RectConverter))>]
[<System.Serializable>]
type Rect = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.RectConverter))>]
type Rect = struct
    interface IFormattable
Public Structure Rect
Implements IFormattable
Vererbung
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe einer Rect Struktur die Dimensionen und die Position eines Rechtecks mithilfe von XAML angeben.

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;

namespace SDKSample
{
    public partial class RectExample : Page
    {
        public RectExample()
        {   
            Path myPath1 = new Path();
            myPath1.Stroke = Brushes.Black;
            myPath1.StrokeThickness = 1;
            SolidColorBrush mySolidColorBrush = new SolidColorBrush();
            mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255);
            myPath1.Fill = mySolidColorBrush;

            // Create the rectangle.
            // This RectangleGeometry specifies a rectangle that is 100 pixels high and
            // 150 wide. The left side of the rectangle is 10 pixels from the left of the 
            // Canvas and the top side of the rectangle is 100 pixels from the top of the Canvas.  
            // Note: You could alternatively use the Rect Constructor to create this:
            // Rect myRect1 = new Rect(10, 100, 150, 100);
            Rect myRect1 = new Rect();
            myRect1.X = 10;
            myRect1.Y = 100;
            myRect1.Width = 150;
            myRect1.Height = 100;
            RectangleGeometry myRectangleGeometry1 = new RectangleGeometry();
            myRectangleGeometry1.Rect = myRect1;

            GeometryGroup myGeometryGroup1 = new GeometryGroup();
            myGeometryGroup1.Children.Add(myRectangleGeometry1);

            myPath1.Data = myGeometryGroup1;

            Path myPath2 = new Path();
            myPath2.Stroke = Brushes.Black;
            myPath2.StrokeThickness = 1;
            myPath2.Fill = mySolidColorBrush;

            // Create the rectangle.
            // This Rect uses the Size property to specify a height of 50 and width
            // of 200. The Location property uses a Point value to determine the location of the
            // top-left corner of the rectangle.
            Rect myRect2 = new Rect();
            myRect2.Size = new Size(50, 200);
            myRect2.Location = new Point(300, 100);
            RectangleGeometry myRectangleGeometry2 = new RectangleGeometry();
            myRectangleGeometry2.Rect = myRect2;

            GeometryGroup myGeometryGroup2 = new GeometryGroup();
            myGeometryGroup2.Children.Add(myRectangleGeometry2);

            myPath2.Data = myGeometryGroup2;

            // Add path shape to the UI.
            Canvas myCanvas = new Canvas();
            myCanvas.Children.Add(myPath1);
            myCanvas.Children.Add(myPath2);
            this.Content = myCanvas;       
        }
    }
}

Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes

Namespace SDKSample
    Partial Public Class RectExample
        Inherits Page
        Public Sub New()
            Dim myPath1 As New Path()
            myPath1.Stroke = Brushes.Black
            myPath1.StrokeThickness = 1
            Dim mySolidColorBrush As New SolidColorBrush()
            mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255)
            myPath1.Fill = mySolidColorBrush

            ' Create the rectangle.
            ' This RectangleGeometry specifies a rectangle that is 100 pixels high and
            ' 150 wide. The left side of the rectangle is 10 pixels from the left of the 
            ' Canvas and the top side of the rectangle is 100 pixels from the top of the Canvas.  
            ' Note: You could alternatively use the Rect Constructor to create this:
            ' Dim myRect1 As New Rect(10,100,150,100")
            Dim myRect1 As New Rect()
            myRect1.X = 10
            myRect1.Y = 100
            myRect1.Width = 150
            myRect1.Height = 100
            Dim myRectangleGeometry1 As New RectangleGeometry()
            myRectangleGeometry1.Rect = myRect1

            Dim myGeometryGroup1 As New GeometryGroup()
            myGeometryGroup1.Children.Add(myRectangleGeometry1)

            myPath1.Data = myGeometryGroup1

            Dim myPath2 As New Path()
            myPath2.Stroke = Brushes.Black
            myPath2.StrokeThickness = 1
            myPath2.Fill = mySolidColorBrush

            ' Create the rectangle.
            ' This Rect uses the Size property to specify a height of 50 and width
            ' of 200. The Location property uses a Point value to determine the location of the
            ' top-left corner of the rectangle.
            Dim myRect2 As New Rect()
            myRect2.Size = New Size(50, 200)
            myRect2.Location = New Point(300, 100)
            Dim myRectangleGeometry2 As New RectangleGeometry()
            myRectangleGeometry2.Rect = myRect2

            Dim myGeometryGroup2 As New GeometryGroup()
            myGeometryGroup2.Children.Add(myRectangleGeometry2)

            myPath2.Data = myGeometryGroup2

            ' Add path shape to the UI.
            Dim myCanvas As New Canvas()
            myCanvas.Children.Add(myPath1)
            myCanvas.Children.Add(myPath2)
            Me.Content = myCanvas
        End Sub
    End Class

End Namespace
<Page  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Canvas>
    
    <!-- This rectangle demonstrates using the X, Y, Width, and Height properties
         of a Rect object. -->
    <Path Stroke="Black" StrokeThickness="1" Fill="LemonChiffon">
      <Path.Data>

        <!-- This RectangleGeometry specifies a rectangle that is 100 pixels high and
             150 wide. The left side of the rectangle is 10 pixels from the left of the 
             Canvas and the top side of the rectangle is 100 pixels from the top of the Canvas.  
             Note: An abbreviated syntax for creating an equivalent rectangle is:
             <RectangleGeometry Rect="10,100,150,100" /> -->
        <RectangleGeometry>
          <RectangleGeometry.Rect>
            <Rect X="10" Y="100" Width="150" Height="100" />
          </RectangleGeometry.Rect>
        </RectangleGeometry>
      </Path.Data>
    </Path>

    <!-- This rectangle demonstrates using the Size and Location properties of a Rect object. -->
    <Path Stroke="Black" StrokeThickness="1" Fill="LemonChiffon">
      <Path.Data>

        <!-- This RectangleGeometry uses the Size property to specify a height of 50 and width
             of 200. The Location property uses a Point value to determine the location of the
             top-left corner of the rectangle. /> -->
        <RectangleGeometry>
          <RectangleGeometry.Rect>
            <Rect Size="50,200" Location="300,100" />
          </RectangleGeometry.Rect>
        </RectangleGeometry>
      </Path.Data>
    </Path>
  </Canvas>
</Page>

Das folgende Beispiel zeigt, wie Sie code verwenden, um ein Rechteck zu erstellen und der Seite hinzuzufügen. Im Beispiel wird auch veranschaulicht, wie Größe und Koordinateninformationen zum neuen Rechteck gefunden und die Informationen in einem TextBox unterhalb des Rechtecks gerendert werden.

// Create a rectangle and add it to the page. Also,
// find size and coordinate information about this
// new rectangle and render information in a TextBox 
// below the rectangle.
private StackPanel createRectExample1()
{
    // Initialize new rectangle.
    Rect myRectangle = new Rect();

    // The Location property specifies the coordinates of the upper left-hand 
    // corner of the rectangle. Set the Location property to an X coordinate of 10 and a
    // Y coordinate of 5. 
    myRectangle.Location = new Point(10, 5);

    // Set the Size property of the rectangle with a width of 200
    // and a height of 50.
    myRectangle.Size = new Size(200, 50);

    RectangleGeometry myRectangleGeometry = new RectangleGeometry();
    myRectangleGeometry.Rect = myRectangle;

    // This path is defined by the rectangle.
    Path myPath = new Path();
    myPath.Fill = Brushes.LemonChiffon;
    myPath.Stroke = Brushes.Black;
    myPath.StrokeThickness = 1;
    myPath.Data = myRectangleGeometry;

    //////////// Create string of rectangle property information /////////////
    // This string will contain all the size and coordinate property
    // information about the rectangle.
    /////////////////////////////////////////////////////////////////////////
    string rectInfo = "Rectangle Property Information: ";

    // Bottom property gets the y-axis value of the bottom of the rectangle. 
    // For this rectangle the value is 55.
    rectInfo = rectInfo + "Bottom: " + myRectangle.Bottom;

    // BottomLeft property gets the coordinates of the bottom left corner of the rectangle. 
    // For this rectangle the value is 10,55.
    rectInfo = rectInfo + "| BottomLeft: " + myRectangle.BottomLeft;

    // BottomRight property gets the coordinates of the bottom right corner of the rectangle. 
    // For this rectangle the value is 210,55.
    rectInfo = rectInfo + "| BottomRight: " + myRectangle.BottomRight;

    // Height property gets or sets the height of the rectangle. 
    // For this rectangle the value is 50.
    rectInfo = rectInfo + "| Height: " + myRectangle.Height;

    // Width property gets or sets the width of the rectangle. 
    // For this rectangle the value is 200.
    rectInfo = rectInfo + "| Width: " + myRectangle.Width;

    // Left property gets the x-axis position of the left side of the rectangle which is 
    // equivalent to getting the rectangle's X property. 
    // For this rectangle the value is 10.
    rectInfo = rectInfo + "| Left: " + myRectangle.Left;

    // Location property gets or sets the position of the rectangle's top-left corner.
    // For this rectangle the value is 10,5.
    rectInfo = rectInfo + "| Location: " + myRectangle.Location;

    // Right property gets the x-axis value of the right side of the rectangle. 
    // For this rectangle the value is 210.
    rectInfo = rectInfo + "| Right: " + myRectangle.Right;

    // Size property gets or sets the width and height of the rectangle.  
    // For this rectangle the value is 200,50.
    rectInfo = rectInfo + "| Size: " + myRectangle.Size;

    // Top property gets the y-axis position of the top of the rectangle which is 
    // equivalent to getting the rectangle's Y property.
    // For this rectangle the value is 5.
    rectInfo = rectInfo + "| Top: " + myRectangle.Top;

    // TopLeft property gets the position of the top-left corner of the rectangle, which 
    // is equivalent to (X, Y).   
    // For this rectangle the value is 10,5.
    rectInfo = rectInfo + "| TopLeft: " + myRectangle.TopLeft;

    // TopRight property gets the position of the top-left corner of the rectangle, which 
    // is equivalent to (X + Width, Y).   
    // For this rectangle the value is 210,5.
    rectInfo = rectInfo + "| TopRight: " + myRectangle.TopRight;

    // X property gets or sets the location of the rectangle's left side.  
    // For this rectangle the value is 10.
    rectInfo = rectInfo + "| X: " + myRectangle.X;

    // Y property gets or sets the location of the rectangle's top side.  
    // For this rectangle the value is 5.
    rectInfo = rectInfo + "| Y: " + myRectangle.Y;

    //////// End of creating string containing rectangle property information ////////

    // This StackPanel will contain the rectangle and TextBlock.
    StackPanel parentPanel = new StackPanel();

    // Add the rectangle path to the StackPanel. This will display the rectangle.
    parentPanel.Children.Add(myPath);

    // Add a TextBlock to display the rectangle's size and coordinate information.
    TextBlock myTextBlock = new TextBlock();
    myTextBlock.Text = rectInfo;
    parentPanel.Children.Add(myTextBlock);

    // Return the parent container to be displayed to the screen.
    return parentPanel;
}

Hinweise

Verwendung von XAML-Attributen

<object property="x,y,width,height"/>

XAML-Werte

x System.Double

Die x-Koordinatenposition der linken Seite des Rechtecks.

YSystem.Double

Die y-Koordinatenposition der oberen Seite des Rechtecks.

BreiteSystem.Double

Ein nicht negativer Wert, der das Width Rechteck darstellt.

HöheSystem.Double

Ein nicht negativer Wert, der das Height Rechteck darstellt.

Konstruktoren

Name Beschreibung
Rect(Double, Double, Double, Double)

Initialisiert eine neue Instanz der Rect Struktur, die die angegebene x-Koordinate, y-Koordinate, Breite und Höhe aufweist.

Rect(Point, Point)

Initialisiert eine neue Instanz der Struktur, die Rect genau groß genug ist, um die beiden angegebenen Punkte zu enthalten.

Rect(Point, Size)

Initialisiert eine neue Instanz der Rect Struktur, die die angegebene position der oberen linken Ecke und die angegebene Breite und Höhe aufweist.

Rect(Point, Vector)

Initialisiert eine neue Instanz der Rect Struktur, die genau groß genug ist, um den angegebenen Punkt und die Summe des angegebenen Punkts und des angegebenen Vektors zu enthalten.

Rect(Size)

Initialisiert eine neue Instanz der Rect Struktur, die der angegebenen Größe entspricht und sich in (0,0) befindet.

Eigenschaften

Name Beschreibung
Bottom

Ruft den y-Achsenwert des unteren Rands des Rechtecks ab.

BottomLeft

Ruft die Position der unteren linken Ecke des Rechtecks ab.

BottomRight

Ruft die Position der unteren rechten Ecke des Rechtecks ab.

Empty

Ruft einen speziellen Wert ab, der ein Rechteck ohne Position oder Bereich darstellt.

Height

Ruft die Höhe des Rechtecks ab oder legt sie fest.

IsEmpty

Ruft einen Wert ab, der angibt, ob das Rechteck das Empty Rechteck ist.

Left

Ruft den X-Achsenwert der linken Seite des Rechtecks ab.

Location

Ruft die Position der oberen linken Ecke des Rechtecks ab oder legt sie fest.

Right

Ruft den X-Achsenwert der rechten Seite des Rechtecks ab.

Size

Dient zum Abrufen oder Festlegen der Breite und Höhe des Rechtecks.

Top

Ruft die y-Achsenposition des oberen Rands des Rechtecks ab.

TopLeft

Ruft die Position der oberen linken Ecke des Rechtecks ab.

TopRight

Ruft die Position der oberen rechten Ecke des Rechtecks ab.

Width

Ruft die Breite des Rechtecks ab oder legt diese fest.

X

Dient zum Abrufen oder Festlegen des x-Achsenwerts der linken Seite des Rechtecks.

Y

Dient zum Abrufen oder Festlegen des Y-Achsenwerts der oberen Seite des Rechtecks.

Methoden

Name Beschreibung
Contains(Double, Double)

Gibt an, ob das Rechteck die angegebene x-Koordinate und y-Koordinate enthält.

Contains(Point)

Gibt an, ob das Rechteck den angegebenen Punkt enthält.

Contains(Rect)

Gibt an, ob das Rechteck das angegebene Rechteck enthält.

Equals(Object)

Gibt an, ob das angegebene Objekt dem aktuellen Rechteck entspricht.

Equals(Rect, Rect)

Gibt an, ob die angegebenen Rechtecke gleich sind.

Equals(Rect)

Gibt an, ob das angegebene Rechteck dem aktuellen Rechteck entspricht.

GetHashCode()

Erstellt einen Hashcode für das Rechteck.

Inflate(Double, Double)

Erweitert oder verkleinert das Rechteck mithilfe der angegebenen Breite und Höhe in alle Richtungen.

Inflate(Rect, Double, Double)

Erstellt ein Rechteck, das aus dem Erweitern oder Verkleinern des angegebenen Rechtecks durch die angegebenen Breiten- und Höhenbeträge in allen Richtungen resultiert.

Inflate(Rect, Size)

Gibt das Rechteck zurück, das aus der Erweiterung des angegebenen Rechtecks durch das angegebene SizeRechteck in allen Richtungen resultiert.

Inflate(Size)

Erweitert das Rechteck mithilfe des angegebenen SizeRechtecks in alle Richtungen.

Intersect(Rect, Rect)

Gibt die Schnittmenge der angegebenen Rechtecke zurück.

Intersect(Rect)

Sucht die Schnittmenge des aktuellen Rechtecks und des angegebenen Rechtecks und speichert das Ergebnis als aktuelles Rechteck.

IntersectsWith(Rect)

Gibt an, ob sich das angegebene Rechteck mit dem aktuellen Rechteck überschneidet.

Offset(Double, Double)

Verschiebt das Rechteck um die angegebenen horizontalen und vertikalen Beträge.

Offset(Rect, Double, Double)

Gibt ein Rechteck zurück, das mithilfe der angegebenen horizontalen und vertikalen Beträge aus dem angegebenen Rechteck versetzt wird.

Offset(Rect, Vector)

Gibt ein Rechteck zurück, das mithilfe des angegebenen Vektors vom angegebenen Rechteck versetzt wird.

Offset(Vector)

Verschiebt das Rechteck durch den angegebenen Vektor.

Parse(String)

Erstellt ein neues Rechteck aus der angegebenen Zeichenfolgendarstellung.

Scale(Double, Double)

Multipliziert die Größe des aktuellen Rechtecks mit den angegebenen x- und y-Werten.

ToString()

Gibt eine Zeichenfolgendarstellung des Rechtecks zurück.

ToString(IFormatProvider)

Gibt eine Zeichenfolgendarstellung des Rechtecks mithilfe des angegebenen Formatanbieters zurück.

Transform(Matrix)

Transformiert das Rechteck, indem die angegebene Matrix angewendet wird.

Transform(Rect, Matrix)

Gibt das Rechteck zurück, das aus der Anwendung der angegebenen Matrix auf das angegebene Rechteck resultiert.

Union(Point)

Erweitert das aktuelle Rechteck genau genug, um den angegebenen Punkt zu enthalten.

Union(Rect, Point)

Erstellt ein Rechteck, das genau groß genug ist, um das angegebene Rechteck und den angegebenen Punkt einzuschließen.

Union(Rect, Rect)

Erstellt ein Rechteck, das genau groß genug ist, um die beiden angegebenen Rechtecke zu enthalten.

Union(Rect)

Erweitert das aktuelle Rechteck genau genug, um das angegebene Rechteck zu enthalten.

Operatoren

Name Beschreibung
Equality(Rect, Rect)

Vergleicht zwei Rechtecke für die genaue Gleichheit.

Inequality(Rect, Rect)

Vergleicht zwei Rechtecke für Ungleichheiten.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mithilfe des angegebenen Formats.

Gilt für: