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.
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.
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
.
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.
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.
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.
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.
Consulte también
- System.Drawing.SolidBrush
- System.Drawing.Drawing2D.HatchBrush
- System.Drawing.TextureBrush
- System.Drawing.Drawing2D.LinearGradientBrush
- Líneas, curvas y formas
- Procedimiento para dibujar un rectángulo con relleno en un formulario Windows Forms
- Procedimiento para dibujar una elipse con relleno en un formulario Windows Forms
.NET Desktop feedback
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de