Cómo: Rellenar figuras abiertas
Se puede rellenar un trazado si se pasa un objeto GraphicsPath al método FillPath. El método FillPath rellena el trazado según el modo de relleno (alternativo o de espirales) establecido en la actualidad para el trazado. Si el trazado tiene figuras abiertas, se rellenará como si esas figuras fueran cerradas. GDI+ cierra una figura dibujando una línea recta desde su extremo hasta su punto inicial.
Ejemplo
En el ejemplo siguiente se crea un trazado que tiene una figura abierta (un arco) y otra cerrada (una elipse). El método FillPath rellena el trazado según el modo de relleno predeterminado, que es Alternate.
En la siguiente ilustración se muestra el resultado del código de ejemplo. Observe que el trazado se rellena (según el modo Alternate) como si la figura abierta estuviera cerrada con una línea recta desde su extremo hasta su punto inicial.
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)
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);
Compilar el código
El ejemplo anterior está diseñado para formularios Windows Forms y requiere PaintEventArgs e, que es un parámetro del controlador del evento Paint.