FillMode 列挙型

定義

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

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

フィールド

名前 説明
Alternate 0

代替フィル モードを指定します。

Winding 1

巻き取りフィル モードを指定します。

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

開いているパスを塗りつぶす

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

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 カウントは、ポイントがフィル領域またはクリップ領域の外側にあることを意味します。

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

適用対象

こちらもご覧ください