FillMode 列舉

定義

指定封閉路徑的內部如何填滿。

C#
public enum FillMode
繼承
FillMode

欄位

名稱 Description
Alternate 0

指定替代填滿模式。

Winding 1

指定繞行填滿模式。

範例

下列範例會建立一個路徑,其中包含一個開啟的圖(弧線)和一個封閉式圖(橢圓形)。 FillPath 方法會根據預設填滿模式填滿路徑,也就是 Alternate。 下圖顯示範例程式代碼的輸出。 請注意,路徑已填滿(根據 Alternate),就好像開啟的數位是由直線從結束點到起點關閉的。

填入開啟路徑

下列範例的設計目的是要與 Windows Forms 搭配使用,而且需要 PaintEventArgse,這是 Paint 事件處理程式的參數。

C#
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);

備註

應用程式會使用兩種填滿模式之一來填滿路徑的內部:替代或纏繞。 模式會決定如何填滿和裁剪封閉式圖形的內部。

預設模式為 Alternate。 若要判斷替代模式中封閉圖形的內部,請從路徑中的任何任意起點繪製一條線,到路徑外的某個點。 如果線條交叉奇數的路徑區段,則起點位於封閉區域內,因此是填滿或裁剪區域的一部分。 偶數的交叉表示該點不在要填滿或裁剪的區域。 使用線條將最後一個點連接到圖的第一個點,以填滿或裁剪開啟的圖形。

纏繞模式會考慮每個交集的路徑區段方向。 它會為每個順時針交集新增一個,並針對每個逆時針交集減一個。 如果結果為非零值,則會將點視為填滿或裁剪區域內。 零計數表示該點位於填滿或裁剪區域之外。

根據繪製圖形區段的順序,圖表會視為順時針或逆時針。

適用於

產品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另請參閱