GDI+ での領域
更新 : 2007 年 11 月
領域は、出力デバイスのディスプレイ範囲の一部です。単純な領域 (単一の四角形) と複雑な領域 (複数の多角形と閉じた曲線の組み合わせ) があります。四角形から構築された領域とパスから構築された領域を次の図に示します。
領域の使用
領域は、クリッピングとヒット テストに使用されることがよくあります。クリッピングでは、ディスプレイ範囲の特定の領域 (通常は更新が必要な部分) だけに描画を制限します。ヒット テストでは、マウス ボタンが押されたときにカーソルが画面上の特定の領域内にあるかどうかを判断します。
四角形またはパスから領域を構築できます。既存の領域を組み合わせて複雑な領域を作成することもできます。Region クラスでは、領域を組み合わせるためのメソッドとして、Intersect、Union、Xor、Exclude、および Complement が用意されています。
2 つの領域の積集合は、両方の領域に属しているすべての点の集合です。和集合は、いずれか一方または両方の領域に属しているすべての点の集合です。1 つの領域の補集合は、その領域に属していないすべての点の集合です。上記の図にある 2 つの領域の積集合と和集合を次の図に示します。
Xor メソッドは、2 つの領域に対して適用され、いずれか一方の領域にだけ属しているすべての点を含む領域を生成します。Exclude メソッドは、2 つの領域に対して適用され、1 番目の領域には属しているが 2 番目の領域には属していないすべての点を含む領域を生成します。このトピックの最初に示した 2 つの領域に対して Xor メソッドと Exclude メソッドを適用して生成された領域を次の図に示します。
領域を塗りつぶすには、Graphics オブジェクト、Brush オブジェクト、および Region オブジェクトが必要です。Graphics オブジェクトには FillRegion メソッドが用意されており、Brush オブジェクトには色やパターンなど、塗りつぶしの属性が格納されます。純色で領域を塗りつぶす例を次に示します。
myGraphics.FillRegion(mySolidBrush, myRegion)
myGraphics.FillRegion(mySolidBrush, myRegion);