Condividi tramite


Penne, linee e rettangoli in GDI+

Per disegnare linee con GDI+ è necessario creare un oggetto Graphics e un oggetto Pen. L'oggetto Graphics fornisce i metodi che eseguono effettivamente il disegno e l'oggetto Pen archivia attributi, ad esempio il colore della linea, la larghezza e lo stile.

Disegno di una linea

Per disegnare una linea, chiamare il metodo DrawLine dell'oggetto Graphics. L'oggetto Pen viene passato come uno degli argomenti al metodo DrawLine. Nell'esempio seguente viene tracciata una linea dal punto (4, 2) al punto (12, 6):

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

DrawLine è un metodo sovraccarico della classe Graphics, pertanto è possibile fornirlo di argomenti in diversi modi. Ad esempio, è possibile costruire due oggetti Point e passare gli oggetti Point come argomenti al metodo 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)

Costruzione di una penna

È possibile specificare determinati attributi quando si costruisce un oggetto Pen. Ad esempio, un costruttore Pen consente di specificare colore e larghezza. L'esempio seguente disegna una linea blu di larghezza 2 da (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)

Linee tratteggiate ed estremità delle linee

L'oggetto Pen espone anche proprietà, ad esempio DashStyle, che è possibile usare per specificare le caratteristiche della riga. L'esempio seguente disegna 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 riga. Le proprietà StartCap e EndCap specificano l'aspetto delle estremità della riga; le estremità possono essere piatta, quadrata, arrotondata, triangolare o una forma personalizzata. La proprietà LineJoin consente di specificare se le linee collegate vengono unite con angoli taglienti, smussate, arrotondate o ritagliate. La figura seguente mostra linee con diversi stili di estremità e di giunzione.

Linee

Disegno di un rettangolo

Disegnare rettangoli con GDI+ è simile al disegnare linee. Per disegnare un rettangolo, è necessario un oggetto Graphics e un oggetto Pen. L'oggetto Graphics fornisce un metodo DrawRectangle e l'oggetto Pen archivia attributi, ad esempio larghezza e colore della linea. L'oggetto Pen viene passato come uno degli argomenti al metodo DrawRectangle. Nell'esempio seguente viene disegnato un rettangolo con l'angolo superiore sinistro in corrispondenza di (100, 50), una larghezza di 80 e un'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, pertanto è possibile specificarlo con argomenti in diversi modi. Ad esempio, è possibile costruire un oggetto Rectangle e passare l'oggetto Rectangle al metodo DrawRectangle come argomento:

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 oggetto Rectangle dispone di metodi e proprietà per la modifica e la raccolta di informazioni sul rettangolo. Ad esempio, i metodi Inflate e Offset modificano le dimensioni e la posizione del rettangolo. Il metodo IntersectsWith indica se il rettangolo interseca un altro rettangolo specificato e il metodo Contains indica se un determinato punto si trova all'interno del rettangolo.

Vedere anche