次の方法で共有


GDI+ のリージョン

領域は、出力デバイスの表示領域の一部です。 領域は、単純 (単一の四角形) または複合 (多角形と閉じた曲線の組み合わせ) にすることができます。 次の図は、2 つの領域を示しています。1 つは四角形から構築され、もう 1 つはパスから構築されています。

四角形から構築された領域のスクリーンショットと、パスから構築された領域のスクリーンショット。

リージョンの使用

領域は、クリッピングとヒット テストによく使用されます。 クリッピングでは、描画を表示領域の特定の領域 (通常は更新する必要がある部分) に制限します。 ヒット テストでは、マウス ボタンが押されたときにカーソルが画面の特定の領域にあるかどうかを確認する必要があります。

四角形またはパスから領域を構築できます。 既存のリージョンを組み合わせて複雑なリージョンを作成することもできます。 Region クラスには、IntersectUnionXorExcludeComplementの各領域を結合するためのメソッドが用意されています。

2 つのリージョンの交差部分は、両方のリージョンに属するすべてのポイントのセットです。 和集合は、一方または他方または両方の領域に属するすべての点の集合です。 リージョンの補数は、そのリージョンに含まれていないすべてのポイントのセットです。 次の図は、前の図に示した 2 つの領域の積集合と和集合を示しています。

上の図の 2 つの領域の交差部分と和集合のスクリーンショット。

Xor メソッドは、リージョンのペアに適用され、一方の領域または他方に属するすべてのポイントを含む領域を生成しますが、両方に属しているわけではありません。 Exclude メソッドは、リージョンのペアに適用され、2 番目の領域にない最初の領域のすべてのポイントを含む領域を生成します。 次の図は、このトピックの冒頭に示した 2 つの領域に Xor メソッドと Exclude メソッドを適用した結果の領域を示しています。

上の図の 2 つの領域に適用された Xor メソッドの結果と Exclude メソッドの結果のスクリーンショット。

領域を塗りつぶすには、Graphics オブジェクト、Brush オブジェクト、および Region オブジェクトが必要です。 Graphics オブジェクトは FillRegion メソッドを提供し、Brush オブジェクトには塗りつぶしの属性 (色やパターンなど) が格納されます。 次の使用例は、領域を単色で塗りつぶします。

myGraphics.FillRegion(mySolidBrush, myRegion);
myGraphics.FillRegion(mySolidBrush, myRegion)

参照