GDI+ での領域

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

Screenshot of a region constructed from a rectangle and a screenshot of a region constructed from a path.

領域の使用

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

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

2 つの領域の積集合は、両方の領域に属するすべてのポイントのセットです。 和集合は、いずれかの領域すなわち両方の領域に属するすべてのポイントのセットです。 領域の補集合は、領域に属さないすべてのポイントのセットです。 次の図は、前の図で示した 2 つの領域の積集合と和集合を示しています。

Screenshot of an intersection and a union of the two regions from the preceding illustration.

Xor メソッドを 2 つの領域の組み合わせに適用すると、いずれかの領域に属すが両方の領域には属さないすべてのポイントを含む領域が生成されます。 Exclude メソッドを 2 つの領域の組み合わせに適用すると、最初の領域に属すが 2 番目の領域には属さないすべてのポイントを含む領域が生成されます。 次の図は、このトピックの冒頭で示した 2 つの領域に Xor メソッドと Exclude メソッドを適用して生成される領域を示しています。

Screenshot of the Xor method results and the Exclude method results applied to the two regions from the preceding illustration.

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

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

関連項目