Rectangle.Intersect 方法

定义

确定表示两个矩形交集的 Rectangle 结构。Determines the Rectangle structure that represents the intersection of two rectangles.

重载

Intersect(Rectangle, Rectangle)

返回第三个 Rectangle 结构,它表示其他两个 Rectangle 结构的交集。Returns a third Rectangle structure that represents the intersection of two other Rectangle structures. 如果没有重叠,将返回空的 RectangleIf there is no intersection, an empty Rectangle is returned.

Intersect(Rectangle)

将此 Rectangle 替换为其自身与指定 Rectangle 的交集。Replaces this Rectangle with the intersection of itself and the specified Rectangle.

Intersect(Rectangle, Rectangle)

返回第三个 Rectangle 结构,它表示其他两个 Rectangle 结构的交集。Returns a third Rectangle structure that represents the intersection of two other Rectangle structures. 如果没有重叠,将返回空的 RectangleIf there is no intersection, an empty Rectangle is returned.

public:
 static System::Drawing::Rectangle Intersect(System::Drawing::Rectangle a, System::Drawing::Rectangle b);
public static System.Drawing.Rectangle Intersect (System.Drawing.Rectangle a, System.Drawing.Rectangle b);
static member Intersect : System.Drawing.Rectangle * System.Drawing.Rectangle -> System.Drawing.Rectangle
Public Shared Function Intersect (a As Rectangle, b As Rectangle) As Rectangle

参数

a
Rectangle

要相交的矩形。A rectangle to intersect.

b
Rectangle

要相交的矩形。A rectangle to intersect.

返回

表示 ab 的交集的 RectangleA Rectangle that represents the intersection of a and b.

示例

下面的代码示例演示 IntersectIsEmpty 和 2 @no__t 成员。The following code example demonstrates the Intersect, IsEmpty and the IntersectsWith members. 此示例应与 Windows 窗体一起使用。This example should be used with a Windows Form. 将此代码粘贴到窗体中,并在处理窗体的 @no__t 0 事件时调用此方法,并将 @no__t 1 作为 @no__t。Paste this code into a form and call this method when handling the form's Paint event, passing e as PaintEventArgs.

private:
   void StaticRectangleIntersection( PaintEventArgs^ e )
   {
      Rectangle rectangle1 = Rectangle(50,50,200,100);
      Rectangle rectangle2 = Rectangle(70,20,100,200);
      e->Graphics->DrawRectangle( Pens::Black, rectangle1 );
      e->Graphics->DrawRectangle( Pens::Red, rectangle2 );
      if ( rectangle1.IntersectsWith( rectangle2 ) )
      {
         Rectangle rectangle3 = Rectangle::Intersect( rectangle1, rectangle2 );
         if (  !rectangle3.IsEmpty )
         {
            e->Graphics->FillRectangle( Brushes::Green, rectangle3 );
         }
      }
   }
private void StaticRectangleIntersection(PaintEventArgs e)
{
    Rectangle rectangle1 = new Rectangle(50, 50, 200, 100);
    Rectangle rectangle2 = new Rectangle(70, 20, 100, 200);
    Rectangle rectangle3 = new Rectangle();

    e.Graphics.DrawRectangle(Pens.Black, rectangle1);
    e.Graphics.DrawRectangle(Pens.Red, rectangle2);

    if (rectangle1.IntersectsWith(rectangle2))
    {
        rectangle3 = Rectangle.Intersect(rectangle1, rectangle2);
        if (!rectangle3.IsEmpty)
        {
            e.Graphics.FillRectangle(Brushes.Green, rectangle3);
        }
    }
}
Private Sub StaticRectangleIntersection(ByVal e As PaintEventArgs)
    Dim rectangle1 As New Rectangle(50, 50, 200, 100)
    Dim rectangle2 As New Rectangle(70, 20, 100, 200)
    Dim rectangle3 As New Rectangle

    e.Graphics.DrawRectangle(Pens.Black, rectangle1)
    e.Graphics.DrawRectangle(Pens.Red, rectangle2)

    If (rectangle1.IntersectsWith(rectangle2)) Then
        rectangle3 = Rectangle.Intersect(rectangle1, rectangle2)
        If Not rectangle3.IsEmpty Then
            e.Graphics.FillRectangle(Brushes.Green, rectangle3)
        End If
    End If
End Sub

Intersect(Rectangle)

将此 Rectangle 替换为其自身与指定 Rectangle 的交集。Replaces this Rectangle with the intersection of itself and the specified Rectangle.

public:
 void Intersect(System::Drawing::Rectangle rect);
public void Intersect (System.Drawing.Rectangle rect);
member this.Intersect : System.Drawing.Rectangle -> unit
Public Sub Intersect (rect As Rectangle)

参数

rect
Rectangle

用其进行相交操作的 RectangleThe Rectangle with which to intersect.

示例

下面的代码示例演示 IntersectIsEmpty 和 2 @no__t 成员。The following code example demonstrates the Intersect, IsEmpty and the IntersectsWith members. 此示例应与 Windows 窗体一起使用。This example should be used with a Windows Form. 将此代码粘贴到窗体中,并在处理窗体的 @no__t 0 事件时调用此方法,并将 @no__t 1 作为 @no__t。Paste this code into a form and call this method when handling the form's Paint event, passing e as PaintEventArgs.

private:
   void InstanceRectangleIntersection( PaintEventArgs^ e )
   {
      Rectangle rectangle1 = Rectangle(50,50,200,100);
      Rectangle rectangle2 = Rectangle(70,20,100,200);
      e->Graphics->DrawRectangle( Pens::Black, rectangle1 );
      e->Graphics->DrawRectangle( Pens::Red, rectangle2 );
      if ( rectangle1.IntersectsWith( rectangle2 ) )
      {
         rectangle1.Intersect( rectangle2 );
         if (  !rectangle1.IsEmpty )
         {
            e->Graphics->FillRectangle( Brushes::Green, rectangle1 );
         }
      }
   }
private void InstanceRectangleIntersection(PaintEventArgs e)
{

    Rectangle rectangle1 = new Rectangle(50, 50, 200, 100);
    Rectangle rectangle2 = new Rectangle(70, 20, 100, 200);

    e.Graphics.DrawRectangle(Pens.Black, rectangle1);
    e.Graphics.DrawRectangle(Pens.Red, rectangle2);

    if (rectangle1.IntersectsWith(rectangle2))
    {
        rectangle1.Intersect(rectangle2);
        if (!rectangle1.IsEmpty)
        {
            e.Graphics.FillRectangle(Brushes.Green, rectangle1);
        }
    }
}
  Private Sub InstanceRectangleIntersection( _
      ByVal e As PaintEventArgs)

      Dim rectangle1 As New Rectangle(50, 50, 200, 100)
      Dim rectangle2 As New Rectangle(70, 20, 100, 200)

      e.Graphics.DrawRectangle(Pens.Black, rectangle1)
      e.Graphics.DrawRectangle(Pens.Red, rectangle2)

      If (rectangle1.IntersectsWith(rectangle2)) Then
          rectangle1.Intersect(rectangle2)
          If Not (rectangle1.IsEmpty) Then
              e.Graphics.FillRectangle(Brushes.Green, rectangle1)
          End If
      End If
  End Sub

适用于