次の方法で共有


Graphics.IntersectClip メソッド

この Graphics オブジェクトのクリップ領域を現在のクリップ領域と指定した Rectangle 構造体との交差部分に更新します。

オーバーロードの一覧

この Graphics オブジェクトのクリップ領域を現在のクリップ領域と指定した Rectangle 構造体との交差部分に更新します。

[Visual Basic] Overloads Public Sub IntersectClip(Rectangle)

[C#] public void IntersectClip(Rectangle);

[C++] public: void IntersectClip(Rectangle);

[JScript] public function IntersectClip(Rectangle);

この Graphics オブジェクトのクリップ領域を現在のクリップ領域と指定した RectangleF 構造体との交差部分に更新します。

[Visual Basic] Overloads Public Sub IntersectClip(RectangleF)

[C#] public void IntersectClip(RectangleF);

[C++] public: void IntersectClip(RectangleF);

[JScript] public function IntersectClip(RectangleF);

この Graphics オブジェクトのクリップ領域を現在のクリップ領域と指定した Region オブジェクトとの交差部分に更新します。

[Visual Basic] Overloads Public Sub IntersectClip(Region)

[C#] public void IntersectClip(Region);

[C++] public: void IntersectClip(Region*);

[JScript] public function IntersectClip(Region);

使用例

[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 Paint イベント ハンドラのパラメータである PaintEventArgs e が必要です。このコードは次のアクションを実行します。

  • 左上隅が (0, 0) に位置する四角形を作成します。
  • 領域を作成し、その領域を四角形に設定し、クリッピング領域をこの領域に設定します。
  • 左上隅が (100, 100) に位置する 2 つ目の四角形を作成します。
  • 領域を作成し、その領域を 2 つ目の四角形に設定し、 CombineMode.Replace の組み合わせモードを使用して、その四角形と現在のクリッピング領域 (1 つ目の四角形) との交差部分にクリッピング領域を設定します。
  • 青いソリッド ブラシで、前の 2 つの領域を含む大きな四角形を塗りつぶします。
  • クリッピング領域を無制限にリセットします。
  • 2 つのクリッピング領域の周りに四角形を描画します。最初のクリッピング領域には黒いペンを、2 つ目のクリッピング領域には赤いペンを使用します。

[Visual Basic, C#] 2 つの領域の交差部分だけが青く塗りつぶされます。

[Visual Basic, C#] メモ   ここでは、IntersectClip のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
Public Sub IntersectClipRegion(e As PaintEventArgs)
' Set clipping region.
Dim clipRect As New Rectangle(0, 0, 200, 200)
Dim clipRegion As New [Region](clipRect)
e.Graphics.SetClip(clipRegion, CombineMode.Replace)
' Update clipping region to intersection of
' existing region with specified rectangle.
Dim intersectRect As New Rectangle(100, 100, 200, 200)
Dim intersectRegion As New [Region](intersectRect)
e.Graphics.IntersectClip(intersectRegion)
' Fill rectangle to demonstrate effective clipping region.
e.Graphics.FillRectangle(New SolidBrush(Color.Blue), 0, 0, _
500, 500)
' Reset clipping region to infinite.
e.Graphics.ResetClip()
' Draw clipRect and intersectRect to screen.
e.Graphics.DrawRectangle(New Pen(Color.Black), clipRect)
e.Graphics.DrawRectangle(New Pen(Color.Red), intersectRect)
End Sub
        
[C#] 
public void IntersectClipRegion(PaintEventArgs e)
{
// Set clipping region.
Rectangle clipRect = new Rectangle(0, 0, 200, 200);
Region clipRegion = new Region(clipRect);
e.Graphics.SetClip(clipRegion, CombineMode.Replace);
// Update clipping region to intersection of
//  existing region with specified rectangle.
Rectangle intersectRect = new Rectangle(100, 100, 200, 200);
Region intersectRegion = new Region(intersectRect);
e.Graphics.IntersectClip(intersectRegion);
// Fill rectangle to demonstrate effective clipping region.
e.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 500, 500);
// Reset clipping region to infinite.
e.Graphics.ResetClip();
// Draw clipRect and intersectRect to screen.
e.Graphics.DrawRectangle(new Pen(Color.Black), clipRect);
e.Graphics.DrawRectangle(new Pen(Color.Red), intersectRect);
}
        

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

Graphics クラス | Graphics メンバ | System.Drawing 名前空間