Penne, linee e rettangoli in GDI+

Per tracciare linee con GDI+ è necessario creare un oggetto Graphics e un oggetto Pen. L'oggetto Graphics fornisce i metodi che consentono di tracciare effettivamente l'elemento, mentre nell'oggetto Pen sono memorizzati gli attributi, quale il colore, lo spessore e lo stile della linea.

Creazione di una linea

Per tracciare una linea, chiamare il metodo DrawLine dell'oggetto Graphics. L'oggetto Pen viene passato come uno degli argomenti al metodo DrawLine. L'esempio seguente consente di tracciare una linea che unisce il punto (4, 2) al punto (12, 6):

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

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

DrawLine è un metodo di overload della classe Graphics, quindi è possibile fornire argomenti a tale metodo in svariati modi. È ad esempio possibile costruire due oggetti Point e passarli come argomenti al metodo DrawLine:

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

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

Costruzione di una penna

Quando si costruisce un oggetto Pen, è possibile specificare determinati attributi. Un costruttore Pen consente ad esempio di specificare il colore e lo spessore. L'esempio seguente consente di tracciare una linea blu con spessore 2 da (0, 0) a (60, 30):

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

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

Linee tratteggiate ed estremità di linea

L'oggetto Pen espone inoltre proprietà, come DashStyle, che possono essere utilizzate per specificare caratteristiche della linea. L'esempio seguente consente di tracciare una linea tratteggiata da (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);

È possibile utilizzare le proprietà dell'oggetto Pen per impostare molti altri attributi della linea. Le proprietà StartCap e EndCap specificano l'aspetto delle estremità della linea, che possono essere senza effetti, quadrate, arrotondate, triangolari oppure possono assumere una forma personalizzata. La proprietà LineJoin consente di specificare se le linee connesse siano unite con angoli netti, unite con angoli smussati, se siano arrotondate o troncate. Nell'immagine seguente vengono mostrate linee con diversi stili di terminazione e unione.

Linee

Disegno di un rettangolo

La procedura per tracciare rettangoli in GDI+ è simile a quella che consente di tracciare linee. Per tracciare un rettangolo, sono necessari un oggetto Graphics e un oggetto Pen. L'oggetto Graphics fornisce il metodo DrawRectangle, mentre nell'oggetto Pen sono memorizzati gli attributi, quale il colore e lo spessore della linea. L'oggetto Pen viene passato come uno degli argomenti del metodo DrawRectangle. L'esempio seguente consente di tracciare un rettangolo con angolo superiore sinistro nel punto (100, 50), larghezza di 80 e altezza di 40:

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

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

DrawRectangle è un metodo di overload della classe Graphics, quindi è possibile fornire argomenti a tale metodo in svariati modi. È ad esempio possibile costruire un oggetto Rectangle e passarlo come argomento al metodo DrawRectangle:

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

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

All'oggetto Rectangle sono associati metodi e proprietà per la modifica e la raccolta di informazioni relative al rettangolo. I metodi Inflate e Offset, ad esempio, consentono di cambiare la dimensione e la posizione del rettangolo. Il metodo IntersectsWith fornisce informazioni sull'eventuale intersezione del rettangolo con un altro rettangolo specificato e il metodo Contains indica se un dato punto si trova all'interno del rettangolo.

Vedere anche

Attività

Procedura: creare un oggetto Pen

Procedura: disegnare una linea in un Windows Form

Procedura: creare una forma con contorno

Riferimenti

System.Drawing.Graphics

System.Drawing.Pen

System.Drawing.Rectangle