Canetas, linhas e retângulos no GDI+

Para desenhar linhas com GDI+ você precisa criar um objeto e um GraphicsPen objeto. O Graphics objeto fornece os métodos que realmente fazem o desenho e o objeto armazena Pen atributos, como cor da linha, largura e estilo.

Desenhar uma linha

Para desenhar uma linha, chame Graphics o DrawLine método do objeto. O Pen objeto é passado como um dos argumentos para o DrawLine método. O exemplo a seguir desenha uma linha do ponto (4, 2) ao ponto (12, 6):

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

DrawLine é um método sobrecarregado da classe, portanto, há várias maneiras de Graphics fornecê-la com argumentos. Por exemplo, você pode construir dois Point objetos e passar os Point objetos como argumentos para o DrawLine método:

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)

Construir uma Caneta

Você pode especificar determinados atributos ao construir um Pen objeto. Por exemplo, um construtor Pen permite especificar a cor e a largura. O exemplo a seguir desenha uma linha azul de largura 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)

Linhas Tracejadas e Terminações de Linha

O Pen objeto também expõe propriedades, como DashStyle, que você pode usar para especificar recursos da linha. O exemplo a seguir desenha uma linha tracejada 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)

Você pode usar as Pen propriedades do objeto para definir muitos mais atributos da linha. As StartCap propriedades e EndCap especificam a aparência das extremidades da linha, as extremidades podem ser planas, quadradas, arredondadas, triangulares ou uma forma personalizada. A LineJoin propriedade permite especificar se as linhas conectadas são miteradas (unidas com cantos nítidos), chanfradas, arredondadas ou cortadas. A ilustração a seguir mostra linhas com vários estilos de extremidade e junção.

Lines

Desenhar um Retângulo

Desenhar retângulos com GDI+ é semelhante a desenhar linhas. Para desenhar um retângulo, você precisa de um objeto e um GraphicsPen objeto. O Graphics objeto fornece um DrawRectangle método e o objeto armazena Pen atributos, como largura e cor da linha. O Pen objeto é passado como um dos argumentos para o DrawRectangle método. O exemplo a seguir desenha um retângulo com seu canto superior esquerdo em (100, 50), uma largura de 80 e altura de 40:

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

DrawRectangle é um método sobrecarregado da classe, portanto, há várias maneiras de Graphics fornecê-la com argumentos. Por exemplo, você pode construir um objeto e passar o objeto para o RectangleDrawRectangle método como um Rectangle 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)

Um Rectangle objeto tem métodos e propriedades para manipular e coletar informações sobre o retângulo. Por exemplo, os Inflate métodos e alteram o tamanho e Offset a posição do retângulo. O IntersectsWith método informa se o retângulo cruza outro determinado retângulo, e o Contains método informa se um determinado ponto está dentro do retângulo.

Confira também