FillMode 枚举

定义

指定如何填充封闭路径的内部。

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

字段

Alternate 0

指定备用填充模式。

Winding 1

指定绕组填充模式。

示例

以下示例创建一个路径,该路径具有一个打开的数字(弧线)和一个封闭图(椭圆)。 FillPath 方法根据默认填充模式(即备用)填充路径。 下图显示了示例代码的输出。 请注意,路径已填充(根据 Alternate),就好像打开的数字被一条直线从终点关闭到起始点。

填充开放路径

下面的示例设计用于 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)

注解

应用程序使用两种填充模式之一填充路径的内部:备用或绕行。 该模式确定如何填充和剪裁封闭图的内部。

默认模式为备用模式。 若要确定处于备用模式的封闭图形的内部,请从路径中的任何任意起点绘制一条线,以明显超出路径之外的某个点。 如果线条跨越奇数的路径段,起始点位于封闭区域内,因此是填充或剪辑区域的一部分。 偶数的交叉意味着该点不在要填充或剪裁的区域。 使用线条将最后一个点连接到该图的第一个点来填充或剪裁一个打开的数字。

“绕行”模式考虑每个交集的路径段的方向。 它为每个顺时针交集添加一个,并减去每个逆时针交集的一个。 如果结果为非零,则点在填充或剪辑区域内考虑。 零计数表示该点位于填充或剪辑区域之外。

根据绘制图形段的顺序,将图表视为顺时针或逆时针。

适用于

另请参阅