10.4. Dibujando con Windows Forms
Windows es un entorno gráfico, por lo que se podría suponer que deberíamos tener la posibilidad de trabajar en "modo gráfico" desde dentro de Windows, dibujando líneas, círculos y demás figuras básicas. En efecto, podemos usar las posibilidades de "System.Drawing" para crear una ventana gráfica dentro de nuestro formulario (ventana de programa). Deberemos preparar también las "plumas" ("Pen", para los contornos) y las "brochas" ("Brush", para los rellenos) que queramos usar. Un ejemplo que dibujara una línea roja y una elipse azul cuando pulsemos un botón del formulario podría ser así:
void Button1Click(object sender, EventArgs e) { // Creamos la pluma, el relleno y la ventana gráfica System.Drawing.Pen contornoRojo = new System.Drawing.Pen( System.Drawing.Color.Red); System.Drawing.SolidBrush rellenoAzul = new System.Drawing.SolidBrush( System.Drawing.Color.Blue); System.Drawing.Graphics ventanaGrafica; ventanaGrafica = this.CreateGraphics(); // Dibujamos ventanaGrafica.DrawLine(contornoRojo, 200, 100, 300, 400); ventanaGrafica.FillEllipse(rellenoAzul, new Rectangle(0, 0, 200, 300)); // Liberamos la memoria que habíamos reservado contornoRojo.Dispose(); rellenoAzul.Dispose(); ventanaGrafica.Dispose(); }
Los métodos para dibujar líneas, rectángulos, elipses, curvas, etc. son parte de la clase Graphics. Algunos de los métodos que ésta contiene y que pueden ser útiles para realizar dibujos sencillos son:
- DrawArc, para dibujar un arco.
- DrawBezier, para una curva spline de Bézier definida por cuatro puntos (estructuras Point).
- DrawClosedCurve, para una curva spline cerrada, a partir de un array de puntos.
- DrawCurve, para una curva.
- DrawEllipse, para dibujar una elipse, a partir del rectángulo que la contiene.
- DrawIcon, para dibujar una imagen representada por un icono (Icon).
- DrawImage, para mostrar una imagen (Image).
- DrawLine, para una línea.
- DrawPolygon, para un polígono, a partir de un array de puntos.
- DrawRectangle, para un rectángulo.
- DrawString, para mostar una cadena de texto.
- FillEllipse, para rellenar el interior de una elipse.
- FillPolygon, para rellenar el interior de un polígono.
- FillRectangle, para rellenar el interior de un rectángulo.
Se puede encontrar más detalles en la referencia en línea (MSDN), por ejemplo en la página
http://msdn.microsoft.com/es-es/library/system.drawing.graphics_methods.aspx