Dibujar una línea
Para dibujar una línea en GDI+, son necesarios un objeto Graphics y un objeto Pen. El objeto Graphics proporciona el método DrawLine y el objeto Pen almacena los atributos de la línea, como el color y el ancho. El objeto Pen se pasa como uno de los argumentos del método DrawLine.
En el siguiente ejemplo se dibuja una línea de (0, 0) a (100, 100). Consiste en la clase LineForm, que se hereda de la clase Form de .NET Frameworks. La clase Form encapsula el código necesario para crear y mostrar una ventana.
La clase LineForm consiste en un método OnPaint reemplazado y un método Main. El método Main llama al método Run del objeto Application para crear una instancia del objeto LineForm y mostrarla como ventana. El código GDI+ que dibuja la línea en la pantalla se encuentra en el método OnPaint.
El método OnPaint recibe un objeto PaintEventArgs del sistema cuando se le llama en respuesta a un evento Paint (un evento Paint se produce cuando es necesario volver a dibujar el formulario; por ejemplo, cuando se mueve o cambia de tamaño el formulario). El objeto PaintEventArgs tiene como miembro un objeto Graphics asociado al formulario. El método OnPaint asigna este objeto Graphics a g.
A continuación, el método OnPaint crea un objeto Pen. El argumento que se pasa al constructor Pen es el color Color.Black, definido por el sistema.
A continuación, el método OnPaint crea dos objetos Point, que representan los extremos de la línea que se va a dibujar.
Por último, el método OnPaint llama al método Graphics.DrawLine para dibujar una línea en la pantalla. Los argumentos que se pasan al método DrawLine son el objeto Pen y los dos objetos Point.
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.Drawing.Text
Public Class LineForm
Inherits Form
Protected Overrides Sub OnPaint(ByVal e as PaintEventArgs)
Dim g As Graphics
g = e.Graphics
Dim blackPen As new Pen(Color.Black, 3)
Dim startPoint As new Point(0, 0)
Dim endPoint As new Point(100, 100)
g.DrawLine(blackPen, startPoint, endPoint)
End Sub
Shared Sub Main()
Application.Run(new LineForm())
End Sub
End Class
[C#]
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
public class LineForm : Form
{
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen blackPen = new Pen(Color.Black, 3);
Point startPoint = new Point(0, 0);
Point endPoint = new Point(100, 100);
g.DrawLine(blackPen, startPoint, endPoint);
}
public static void Main()
{
Application.Run(new LineForm());
}
}