Compartir a través de


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.

Screenshot of a rectangle filled with a solid brush and an ellipse filled with a hatch brush.Captura de pantalla de un rectángulo relleno con un pincel sólido y una elipse rellena con un pincel de sombreado.Aboutgdip02_art17

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.

Screenshot of three ellipses that are filled with a horizontal hatch brush, forward diagonal hatch brush, and a cross hatch brush.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.Aboutgdip02_art18

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.

Screenshot of the My Texture dot b m p file.Captura de pantalla del archivo My texture.bmp.Aboutgdip02_Art19

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.

Screenshot of an ellipse that is filled with a texture brush.Captura de pantalla de una elipse rellenada con un pincel de textura.AboutGdip02_Art20

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.

Screenshot of an ellipse filled with a horizontal gradient brush.Captura de pantalla de una elipse rellenada con un pincel de degradado horizontal.AboutGdip02_Art21

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.

Screenshot of an ellipse filled with a path gradient brush.Captura de pantalla de una elipse rellenada con un pincel de degradado de trazado.AboutGdip02_Art22

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.

Screenshot of a triangle filled with a path gradient brush.Captura de pantalla de un triángulo rellenado con un pincel de degradado de trazado.AboutGdip02_Art23

Consulte también