Pinceles y formas rellenas en GDI+
Actualización: noviembre 2007
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 los interiores de las formas cerradas: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush y 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.
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
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.
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.
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.
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.
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.
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.Drawing2D.HatchBrush
System.Drawing.Drawing2D.LinearGradientBrush