Compartir a través de


Pinceles y formas rellenas en GDI+

Una figura cerrada, como un rectángulo o una elipse, está compuesta de un contorno y un interior. El contorno se dibuja con un lápiz y el interior se rellena con un pincel. GDI+ proporciona varias clases de pincel para rellenar el interior de formas cerradas: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushy PathGradientBrush. Todas estas clases se heredan de la clase Brush. En la siguiente ilustración se muestra un rectángulo relleno con un pincel sólido y una elipse rellena con un pincel tramado.

Formas rellenas

Pinceles sólidos

Para rellenar una forma cerrada, necesita una instancia de la clase Graphics y Brush. La instancia de la clase Graphics proporciona métodos, como FillRectangle y FillEllipse, y Brush almacena los atributos del relleno, como color y modelo. Brush se pasa como uno de los argumentos del método de relleno. En el siguiente ejemplo de código se muestra cómo rellenar una elipse con un color rojo sólido.

        Dim mySolidBrush As New SolidBrush(Color.Red)
        myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);

Nota

En el ejemplo anterior, el pincel es de tipo SolidBrush, que hereda de Brush.

Pincel tramado

Cuando se rellena una forma con un pincel tramado, hay que especificar un color de primer plano, un color de fondo y un estilo tramado. El color de primer plano es el color del tramado.

        Dim myHatchBrush As _
           New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)

HatchBrush myHatchBrush =
   new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);

GDI+ proporciona más de 50 estilos tramados; los tres estilos que se muestran en la siguiente ilustración son Horizontal, ForwardDiagonal y Cross.

Formas rellenas

Pinceles de textura

Un pincel de textura permite rellenar una forma con un modelo almacenado en un mapa de bits. Por ejemplo, supongamos que la siguiente imagen está almacenada en un archivo de disco denominado MyTexture.bmp.

Forma rellena

En el ejemplo de código siguiente se muestra cómo rellenar una elipse repitiendo la imagen almacenada en MyTexture.bmp.

        Dim myImage As Image = Image.FromFile("MyTexture.bmp")
        Dim myTextureBrush As New TextureBrush(myImage)
        myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)

Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);

En la siguiente ilustración se muestra la elipse rellena.

Forma rellena

Pinceles degradados

GDI+ proporciona dos tipos de pinceles degradados: lineal y de trazado. Se puede utilizar un pincel degradado para rellenar una forma con un color que cambie gradualmente conforme se avanza por la forma horizontal, vertical o diagonalmente. En el siguiente ejemplo de código se muestra cómo rellenar una elipse con un pincel degradado horizontal que cambia de azul a verde conforme se avanza del borde izquierdo de la elipse al borde derecho.

        Dim myLinearGradientBrush As New LinearGradientBrush( _
           myRectangle, _
           Color.Blue, _
           Color.Green, _
           LinearGradientMode.Horizontal)
        myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)

LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
   myRectangle,
   Color.Blue,
   Color.Green,
   LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);

En la siguiente ilustración se muestra la elipse rellena.

Forma rellena

Un pincel degradado de trazado se puede configurar para que cambie de color conforme se avanza desde el centro de una forma hacia el borde de la misma.

Forma rellena

Los pinceles degradados de trazado son bastante flexibles. El pincel degradado utilizado para rellenar el triángulo de la siguiente ilustración cambia gradualmente de rojo, en el centro, a cada uno de tres colores distintos de los vértices.

Forma rellena

Vea también

Tareas

Cómo: Dibujar un rectángulo relleno en un formulario Windows Forms

Cómo: Dibujar una elipse rellena en un formulario Windows Forms

Referencia

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

Otros recursos

Líneas, curvas y formas