Pinceles y formas rellenas en GDI+

Una forma cerrada, como un rectángulo o una elipse, consta de un contorno y una zona 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 los interiores de formas cerradas: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush y PathGradientBrush. Todas estas clases heredan de la clase Brush. En la ilustración siguiente se muestra un rectángulo relleno con un pincel sólido y una elipse rellena con un pincel de sombreado.

Captura de pantalla de un rectángulo relleno con un pincel sólido y una elipse rellena con un pincel de sombreado.

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 el color y el patrón. Brush se pasa como uno de los argumentos al método de llenado. En el ejemplo de código siguiente se muestra cómo rellenar una elipse con un color rojo sólido.

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);
Dim mySolidBrush As 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.

Pinceles de sombreado

Al rellenar una forma con un pincel de sombreado, se especifica un color de primer plano, un color de fondo y un estilo de sombreado. El color de primer plano es el color del sombreado.

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

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

Captura de pantalla de tres elipses rellenadas con un pincel de sombreado horizontal, un pincel de sombreado diagonal hacia delante y un pincel de sombreado cruzado.

Pinceles de textura

Con un pincel de textura, puede rellenar una forma con un patrón almacenado en un mapa de bits. Por ejemplo, supongamos que la siguiente imagen se almacena en un archivo de disco denominado MyTexture.bmp.

Captura de pantalla del archivo My texture.bmp.

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

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

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

Captura de pantalla de una elipse rellenada con un pincel de textura.

Pinceles de degradado

GDI+ proporciona dos tipos de pinceles de degradado: lineal y trazado. Puede usar un pincel degradado lineal para rellenar una forma con color que cambie gradualmente a medida que se mueve por la forma horizontal, vertical o diagonalmente. En el ejemplo de código siguiente se muestra cómo rellenar una elipse con un pincel de degradado horizontal que cambia de azul a verde a medida que se mueve desde el borde izquierdo de la elipse hasta el borde derecho.

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

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

Captura de pantalla de una elipse rellenada con un pincel de degradado horizontal.

Un pincel de degradado de trazado se puede configurar para cambiar el color a medida que se mueve desde el centro de una forma hacia el borde.

Captura de pantalla de una elipse rellenada con un pincel de degradado de trazado.

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

Captura de pantalla de un triángulo rellenado con un pincel de degradado de trazado.

Consulte también