Procedura: creare oggetti Graphics per disegnare

Prima di poter creare linee e forme, eseguire il rendering di testo o visualizzare e modificare immagini con GDI+, è necessario creare un oggetto Graphics. L'oggetto Graphics rappresenta un'area di disegno GDI+, ed è l'oggetto utilizzato per la creazione di immagini grafiche.

La gestione della grafica implica due passaggi fondamentali:

  1. Creazione di un oggetto Graphics.

  2. Utilizzo dell'oggetto Graphics per creare linee e forme, eseguire il rendering di testo oppure visualizzare e modificare immagini.

Creazione di un oggetto Graphics

Un oggetto Graphics può essere creato in diversi modi.

Per creare un oggetto Graphics

  • Ricevere un riferimento a un oggetto Graphics nell'ambito di PaintEventArgs nell'evento Paint di un form o di un controllo. In questo modo viene in genere ottenuto un riferimento a un oggetto Graphics quando si crea codice di disegno per un controllo. Analogamente, è inoltre possibile ottenere un oggetto Graphics come proprietà di PrintPageEventArgs quando si gestisce l'evento PrintPage per un PrintDocument.

    -oppure-

  • Chiamare il metodo CreateGraphics di un controllo o form per ottenere un riferimento a un oggetto Graphics che rappresenta la superficie di disegno di tale controllo o form. Utilizzare questo metodo se si desidera disegnare in un form o controllo già esistente.

    -oppure-

  • Creare un oggetto Graphics da qualsiasi oggetto che eredita da Image. Questo metodo risulta utile quando si desidera modificare un'immagine già esistente.

    Queste procedure verranno illustrate in modo approfondito nelle sezioni seguenti.

PaintEventArgs nel gestore dell'evento Paint

Al momento della programmazione di PaintEventHandler per i controlli o PrintPage per un PrintDocument, un oggetto Graphics viene fornito come proprietà di PaintEventArgs oppure PrintPageEventArgs.

Per ottenere un riferimento a un oggetto Graphics da PaintEventArgs dell'evento Paint

  1. Dichiarare l'oggetto Graphics.

  2. Assegnare la variabile in modo che faccia riferimento all'oggetto Graphics passato come parte di PaintEventArgs.

  3. Inserire il codice per disegnare il form o il controllo.

    Nell'esempio seguente viene illustrato come creare un riferimento a un oggetto Graphics da un oggetto PaintEventArgs nell'evento Paint:

    Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _
       MyBase.Paint
       ' Declares the Graphics object and sets it to the Graphics object
       ' supplied in the PaintEventArgs.
       Dim g As Graphics = pe.Graphics
       ' Insert code to paint the form here.
    End Sub
    
    private void Form1_Paint(object sender, 
       System.Windows.Forms.PaintEventArgs pe) 
    {
       // Declares the Graphics object and sets it to the Graphics object
       // supplied in the PaintEventArgs.
       Graphics g = pe.Graphics;
       // Insert code to paint the form here.
    }
    
    private:
       void Form1_Paint(System::Object ^ sender,
          System::Windows::Forms::PaintEventArgs ^ pe)
       {
          // Declares the Graphics object and sets it to the Graphics object
          // supplied in the PaintEventArgs.
          Graphics ^ g = pe->Graphics;
          // Insert code to paint the form here.
       }
    

Metodo CreateGraphics

È anche possibile utilizzare il metodo CreateGraphics di un controllo o form per ottenere un riferimento a un oggetto Graphics che rappresenta la superficie di disegno di tale controllo o form.

Per creare un oggetto Graphics con il metodo CreateGraphics

  • Chiamare il metodo CreateGraphics del form o del controllo su cui eseguire il rendering della grafica.

    Dim g as Graphics
    ' Sets g to a Graphics object representing the drawing surface of the
    ' control or form g is a member of.
    g = Me.CreateGraphics
    
    Graphics g;
    // Sets g to a graphics object representing the drawing surface of the
    // control or form g is a member of.
    g = this.CreateGraphics();
    
    Graphics ^ g;
    // Sets g to a graphics object representing the drawing surface of the
    // control or form g is a member of.
    g = this->CreateGraphics();
    

Creazione da un oggetto Image

È inoltre possibile creare un oggetto Graphics da qualsiasi oggetto che derivi dalla classe Image.

Per creare un oggetto Graphics da un oggetto Image

  • Chiamare il metodo Graphics.FromImage specificando il nome della variabile Image da cui creare un oggetto Graphics.

    Nell'esempio che segue viene illustrato come utilizzare un oggetto Bitmap:

    Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp")
    Dim g as Graphics = Graphics.FromImage(myBitmap)
    
    Bitmap myBitmap = new Bitmap(@"C:\Documents and 
       Settings\Joe\Pics\myPic.bmp");
    Graphics g = Graphics.FromImage(myBitmap);
    
    Bitmap ^ myBitmap = gcnew
       Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp");
    Graphics ^ g = Graphics::FromImage(myBitmap);
    

Nota

È possibile creare oggetti Graphics solo da file BMP non indicizzati, quali file BMP a 16, 24 e 32 bit. Ciascun pixel di file BMP non indicizzati contiene un colore, a differenza dei pixel dei file BMP indicizzati che contengono un indice a una tabella dei colori.

Creazione e modifica di forme e immagini

Una volta creato, l'oggetto Graphics può essere utilizzato per creare linee e forme, eseguire il rendering di testo oppure visualizzare e modificare immagini. Di seguito sono riportati i principali oggetti utilizzati con l'oggetto Graphics:

  • Classe Pen: utilizzata per creare linee, tracciare forme oppure eseguire il rendering di altre rappresentazioni geometriche.

  • Classe Brush: utilizzata per riempire aree di grafica, quali forme, immagini o testo riempiti.

  • Classe Font: fornisce una descrizione delle forme da utilizzare per il rendering di testo.

  • Struttura Color: rappresenta i diversi colori da visualizzare.

Per utilizzare l'oggetto Graphics creato

Vedere anche

Attività

Procedura: eseguire il rendering delle immagini con GDI+

Altre risorse

Guida introduttiva alla programmazione grafica

Grafica e disegno in Windows Form

Linee, curve e forme