Rect 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述矩形的宽度、高度和位置。
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
- 继承
- 属性
- 实现
示例
以下示例演示如何使用 Rect 结构通过 XAML 指定矩形的尺寸和位置。
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>
以下示例演示如何使用代码创建矩形并将其添加到页面。 该示例还演示了如何查找有关新矩形的大小和坐标信息,以及如何在 TextBox 矩形下方呈现信息。
// 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;
}
注解
XAML 属性用法
<object property="x,y,width,height"/>
XAML 值
矩形左侧的 x 坐标位置。
矩形上侧的 y 坐标位置。
表示矩形的非负值 Width 。
表示矩形的非负值 Height 。
构造函数
| 名称 | 说明 |
|---|---|
| Rect(Double, Double, Double, Double) |
初始化具有指定 x 坐标、y 坐标、宽度和高度的结构的新实例 Rect 。 |
| Rect(Point, Point) |
初始化结构的新实例,该实例 Rect 的大小正好足以包含两个指定点。 |
| Rect(Point, Size) |
初始化具有指定左上角位置和指定宽度和高度的结构的新实例 Rect 。 |
| Rect(Point, Vector) |
初始化结构的新实例,该实例 Rect 的大小正好足以包含指定点和指定点和指定向量的总和。 |
| Rect(Size) |
初始化具有指定大小且位于 (0,0) 的结构的新实例 Rect 。 |
属性
| 名称 | 说明 |
|---|---|
| Bottom |
获取矩形底部的 y 轴值。 |
| BottomLeft |
获取矩形左下角的位置。 |
| BottomRight |
获取矩形右下角的位置。 |
| Empty |
获取一个特殊值,该值表示没有位置或区域的矩形。 |
| Height |
获取或设置矩形的高度。 |
| IsEmpty |
获取一个值,该值指示矩形是否为 Empty 矩形。 |
| Left |
获取矩形左侧的 x 轴值。 |
| Location |
获取或设置矩形左上角的位置。 |
| Right |
获取矩形右侧的 x 轴值。 |
| Size |
获取或设置矩形的宽度和高度。 |
| Top |
获取矩形顶部的 y 轴位置。 |
| TopLeft |
获取矩形左上角的位置。 |
| TopRight |
获取矩形右上角的位置。 |
| Width |
获取或设置矩形的宽度。 |
| X |
获取或设置矩形左侧的 x 轴值。 |
| Y |
获取或设置矩形上侧的 y 轴值。 |
方法
| 名称 | 说明 |
|---|---|
| Contains(Double, Double) |
指示矩形是否包含指定的 x 坐标和 y 坐标。 |
| Contains(Point) |
指示矩形是否包含指定的点。 |
| Contains(Rect) |
指示矩形是否包含指定的矩形。 |
| Equals(Object) |
指示指定的对象是否等于当前矩形。 |
| Equals(Rect, Rect) |
指示指定的矩形是否相等。 |
| Equals(Rect) |
指示指定的矩形是否等于当前矩形。 |
| GetHashCode() |
为矩形创建哈希代码。 |
| Inflate(Double, Double) |
使用指定宽度和高度量在所有方向上展开或收缩矩形。 |
| Inflate(Rect, Double, Double) |
创建一个矩形,该矩形由指定宽度和高度量以所有方向展开或缩小指定的矩形。 |
| Inflate(Rect, Size) |
返回从按指定方向展开指定 Size矩形的结果矩形的矩形。 |
| Inflate(Size) |
使用指定 Size的所有方向展开矩形。 |
| Intersect(Rect, Rect) |
返回指定矩形的交集。 |
| Intersect(Rect) |
查找当前矩形和指定矩形的交集,并将结果存储为当前矩形。 |
| IntersectsWith(Rect) |
指示指定的矩形是否与当前矩形相交。 |
| Offset(Double, Double) |
按指定的水平和垂直量移动矩形。 |
| Offset(Rect, Double, Double) |
使用指定的水平和垂直量返回与指定矩形偏移的矩形。 |
| Offset(Rect, Vector) |
使用指定的向量返回与指定矩形偏移的矩形。 |
| Offset(Vector) |
按指定的向量移动矩形。 |
| Parse(String) |
从指定的字符串表示形式创建新矩形。 |
| Scale(Double, Double) |
将当前矩形的大小乘以指定的 x 和 y 值。 |
| ToString() |
返回矩形的字符串表示形式。 |
| ToString(IFormatProvider) |
使用指定的格式提供程序返回矩形的字符串表示形式。 |
| Transform(Matrix) |
通过应用指定的矩阵来转换矩形。 |
| Transform(Rect, Matrix) |
返回将指定矩阵应用于指定矩形的结果的矩形。 |
| Union(Point) |
展开当前矩形,使其完全足以包含指定的点。 |
| Union(Rect, Point) |
创建一个大小正好足以包含指定矩形和指定点的矩形。 |
| Union(Rect, Rect) |
创建一个大小正好足以包含两个指定矩形的矩形。 |
| Union(Rect) |
完全扩展当前矩形,以包含指定的矩形。 |
运营商
| 名称 | 说明 |
|---|---|
| Equality(Rect, Rect) |
比较两个矩形的精确相等性。 |
| Inequality(Rect, Rect) |
比较两个矩形的不相等性。 |
显式接口实现
| 名称 | 说明 |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
使用指定格式设置当前实例的值的格式。 |