Lápices, líneas y rectángulos en GDI+

Para dibujar líneas con GDI+ debe crear un objeto Graphics y un objeto Pen. El objeto Graphics proporciona los métodos que realizan el dibujo, mientras que el objeto Pen almacena los atributos, como el color de línea, el ancho y el estilo.

Dibujo de una línea

Para dibujar una línea, llame al método DrawLine del objeto Graphics. El objeto Pen se pasa como uno de los argumentos al método DrawLine. En el ejemplo siguiente se dibuja una línea del punto (4, 2) al punto (12, 6):

myGraphics.DrawLine(myPen, 4, 2, 12, 6);
myGraphics.DrawLine(myPen, 4, 2, 12, 6)

DrawLine es un método sobrecargado de la clase Graphics, por lo que hay varias maneras de proporcionarlo con argumentos. Por ejemplo, puede construir dos objetos Point y pasar los objetos Point como argumentos al método DrawLine:

Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);
Dim myStartPoint As New Point(4, 2)
Dim myEndPoint As New Point(12, 6)
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)

Construcción de un lápiz

Puede especificar determinados atributos al construir un objeto Pen. Por ejemplo, un constructor Pen permite especificar el color y el ancho. En el ejemplo siguiente se dibuja una línea azul con un ancho de 2 de (0, 0) a (60, 30):

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);
Dim myPen As New Pen(Color.Blue, 2)
myGraphics.DrawLine(myPen, 0, 0, 60, 30)

Líneas discontinuas y extremos de línea

El objeto Pen también expone propiedades, como DashStyle, que se pueden usar para especificar las características de la línea. En el ejemplo siguiente se dibuja una línea discontinua de (100, 50) a (300, 80):

myPen.DashStyle = DashStyle.Dash;
myGraphics.DrawLine(myPen, 100, 50, 300, 80);
myPen.DashStyle = DashStyle.Dash
myGraphics.DrawLine(myPen, 100, 50, 300, 80)

Puede usar las propiedades del objeto Pen para establecer muchos más atributos de la línea. Las propiedades StartCap y EndCap especifican el aspecto de los extremos de la línea, que pueden ser planos, cuadrados, redondeados, triangulares o una forma personalizada. La propiedad LineJoin permite especificar si las líneas conectadas están en ángulo (unidas con esquinas afiladas), biseladas, redondeadas o recortadas. En la ilustración siguiente se muestran líneas con varios estilos de extremo y de unión.

Líneas

Dibujo de un rectángulo

El proceso de dibujar rectángulos con GDI+ es similar al de dibujar líneas. Para dibujar un rectángulo, necesita un objeto Graphics y un objeto Pen. El objeto Graphics proporciona un método DrawRectangle, mientras que el objeto Pen almacena los atributos, como el ancho de línea y el color. El objeto Pen se pasa como uno de los argumentos al método DrawRectangle. En el ejemplo siguiente se dibuja un rectángulo con la esquina superior izquierda en (100, 50), un ancho de 80 y un alto de 40:

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, 100, 50, 80, 40)

DrawRectangle es un método sobrecargado de la clase Graphics, por lo que hay varias maneras de proporcionarlo con argumentos. Por ejemplo, puede construir un objeto Rectangle y pasar dicho objeto Rectangle al método DrawRectangle como argumento:

Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);
Dim myRectangle As New Rectangle(100, 50, 80, 40)
myGraphics.DrawRectangle(myPen, myRectangle)

Un objeto Rectangle tiene métodos y propiedades para manipular y recopilar información sobre el rectángulo. Por ejemplo, los métodos Inflate y Offset cambian el tamaño y la posición del rectángulo. El método IntersectsWith indica si el rectángulo forma intersección con otro rectángulo concreto, mientras que el método Contains indica si un punto determinado está dentro del rectángulo.

Consulte también