FillMode 列挙型

定義

閉じたパスの内側の塗りつぶし方法を指定します。

public enum class FillMode
public enum FillMode
type FillMode = 
Public Enum FillMode
継承
FillMode

フィールド

Alternate 0

交互塗りつぶしモードを指定します。

Winding 1

全域塗りつぶしモードを指定します。

次の例では、開いた図形 (円弧) と閉じた図形 (楕円) が 1 つずつあるパスを作成します。 FillPath メソッドは、既定の塗りつぶしモード (代替) に従ってパスを塗りつぶします。 次の図は、このコード例の出力を示したものです。 パスは(代替に従って)、開いている図形が終了点から開始点までの直線で閉じられたかのように塗りつぶされることに注意してください。

[開くパスを

次の例は、Windows フォームで使用するように設計されており、イベント ハンドラーのPaintパラメーターである が必要PaintEventArgseです。

GraphicsPath path = new GraphicsPath();

// Add an open figure.
path.AddArc(0, 0, 150, 120, 30, 120);

// Add an intrinsically closed figure.
path.AddEllipse(50, 50, 50, 100);

Pen pen = new Pen(Color.FromArgb(128, 0, 0, 255), 5);
SolidBrush brush = new SolidBrush(Color.Red);

// The fill mode is FillMode.Alternate by default.
e.Graphics.FillPath(brush, path);
e.Graphics.DrawPath(pen, path);
Dim path As New GraphicsPath()

' Add an open figure.
path.AddArc(0, 0, 150, 120, 30, 120)

' Add an intrinsically closed figure.
path.AddEllipse(50, 50, 50, 100)

Dim pen As New Pen(Color.FromArgb(128, 0, 0, 255), 5)
Dim brush As New SolidBrush(Color.Red)

' The fill mode is FillMode.Alternate by default.
e.Graphics.FillPath(brush, path)
e.Graphics.DrawPath(pen, path)

注釈

アプリケーションは、代替または巻き取りの 2 つの塗りつぶしモードのいずれかを使用して、パスの内部を塗りつぶします。 モードは、閉じた図形の内部を塗りつぶしてクリップする方法を決定します。

既定のモードは代替です。 代替モードで閉じた図形の内部を決定するには、パス内の任意の開始点から、明らかにパスの外側にある特定のポイントまでの線を描画します。 線が奇数個のパス セグメントと交差する場合、開始点は閉じた領域内にあるため、塗りつぶし領域またはクリッピング領域の一部になります。 偶数の交差は、ポイントが塗りつぶされたりクリップされたりする領域にないことを意味します。 開いている図形は、線を使用して図形の最初のポイントに最後のポイントを接続することによって塗りつぶされるか、クリップされます。

巻き取りモードでは、各交点でのパス セグメントの方向が考慮されます。 時計回りの交差ごとに 1 つを加算し、反時計回りの交差ごとに 1 つ減算します。 結果が 0 以外の場合、ポイントは塗りつぶしまたはクリップ領域内と見なされます。 カウントが 0 の場合は、ポイントが塗りつぶし領域またはクリップ領域の外側にあることを意味します。

図形は、図形のセグメントが描画される順序に基づいて、時計回りまたは反時計回りと見なされます。

適用対象

こちらもご覧ください