Creazione di una linea

Per tracciare una linea in GDI+ sono necessari un oggetto Graphics e un oggetto Pen. L'oggetto Graphics fornisce il metodo DrawLine, mentre l'oggetto Pen contiene gli attributi della linea, come colore e larghezza. L'oggetto Pen viene passato come argomento al metodo DrawLine.

Nell'esempio che segue si traccia una linea tra (0, 0) e (100, 100). Viene utilizzata la classe LineForm, che eredita dalla classe Form di .NET Frameworks. La classe Form incapsula il codice necessario per la creazione e la visualizzazione di una finestra.

La classe LineForm è composta da un metodo OnPaint sottoposto a override e da un metodo Main. Il metodo Main consente di chiamare il metodo Run dell'oggetto Application per creare un'istanza dell'oggetto LineForm e visualizzarla nella rispettiva finestra. Il codice GDI+ che traccia la linea sullo schermo è contenuto nel metodo OnPaint.

Il metodo OnPaint riceve un oggetto PaintEventArgs dal sistema quando viene chiamato in risposta a un evento Paint che si verifica quando è necessario ridisegnare il form, ad esempio quando esso viene spostato o ridimensionato. Uno dei membri dell'oggetto PaintEventArgs è un oggetto Graphics associato al form. Tramite il metodo OnPaint tale oggetto Graphics viene assegnato a g

e viene creato un oggetto Pen. L'argomento passato al costruttore Pen è il colore Color.Black, definito nel sistema.

Tramite il metodo OnPaint vengono quindi creati due oggetti Point che rappresentano gli endpoint della linea da tracciare.

Infine, viene chiamato il metodo Graphics.DrawLine per tracciare la linea sullo schermo. Gli argomenti passati al metodo DrawLine sono l'oggetto Pen e i due oggetti 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());
   }

}