Porady: wypełnianie otwartych figur

Ścieżkę można wypełnić, przekazując GraphicsPath obiekt do FillPath metody . Metoda FillPath wypełnia ścieżkę zgodnie z trybem wypełnienia (alternatywnym lub uzwojenia) ustawionym obecnie dla ścieżki. Jeśli ścieżka zawiera jakiekolwiek otwarte rysunki, ścieżka jest wypełniona tak, jakby te liczby zostały zamknięte. GDI+ zamyka rysunek, rysując linię prostą od punktu końcowego do punktu początkowego.

Przykład

Poniższy przykład tworzy ścieżkę, która ma jedną otwartą figurę (łuk) i jedną zamkniętą figurę (wielokropek). Metoda FillPath wypełnia ścieżkę zgodnie z domyślnym trybem wypełnienia, czyli Alternate.

Poniższa ilustracja przedstawia dane wyjściowe przykładowego kodu. Należy pamiętać, że ścieżka jest wypełniona (zgodnie z Alternate) tak, jakby rysunek otwarty został zamknięty przez linię prostą od punktu końcowego do punktu początkowego.

Diagram that shows the output of the FillPath method

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)

Kompilowanie kodu

Powyższy przykład jest przeznaczony do użycia z formularzami Windows Forms i wymaga PaintEventArgseparametru , który jest parametrem Paint programu obsługi zdarzeń.

Zobacz też