Condividi tramite


Procedura: Creare oggetti grafici per il disegno

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

Esistono due passaggi per lavorare con la grafica:

  1. Creazione di un oggetto Graphics.

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

Creazione di un oggetto grafico

Un oggetto grafico può essere creato in diversi modi.

Per creare un oggetto grafico

  • Ricevere un riferimento a un oggetto grafico come parte del PaintEventArgs quando si verifica l'evento Paint di una maschera o di un controllo. Questo è in genere il modo in cui si ottiene un riferimento a un oggetto grafico durante la creazione di codice di disegno per un controllo. Analogamente, puoi anche ottenere un oggetto grafico come proprietà del PrintPageEventArgs quando gestisci l'evento PrintPage per un PrintDocument.

    -o-

  • Chiamare il metodo CreateGraphics di un controllo o di un form per ottenere un riferimento a un oggetto Graphics che rappresenta l'area di disegno di tale controllo o form. Utilizzare questo metodo se si desidera disegnare su un modulo o un controllo già esistente.

    -o-

  • Creare un oggetto Graphics da qualsiasi oggetto che eredita da Image. Questo approccio è utile quando si vuole modificare un'immagine già esistente.

    Nelle sezioni seguenti vengono fornite informazioni dettagliate su ognuno di questi processi.

PaintEventArgs nel gestore eventi Paint

Quando si programma il PaintEventHandler per i controlli o il PrintPage per un PrintDocument, viene fornito un oggetto grafico come una delle proprietà di PaintEventArgs o PrintPageEventArgs.

Per ottenere un riferimento a un oggetto di tipo Graphics dalla classe PaintEventArgs nell'evento Paint

  1. Dichiarare l'oggetto Graphics.

  2. Assegna la variabile per fare riferimento all'oggetto Graphics passato come parte del PaintEventArgs.

  3. Inserire il codice per disegnare la maschera o il controllo.

    Nell'esempio seguente viene illustrato come fare riferimento a un oggetto Graphics dal 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

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

Per creare un oggetto Graphics con il metodo CreateGraphics

  • Chiamare il metodo CreateGraphics della maschera o del controllo su cui si desidera visualizzare la 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();  
    

Crea da un oggetto immagine

Inoltre, è possibile creare un oggetto grafico da qualsiasi oggetto che deriva dalla classe Image.

Per creare un oggetto Graphics da un'immagine

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

    Nell'esempio seguente viene illustrato come usare 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 di .bmp non indicizzati, ad esempio file a 16 bit, a 24 bit e .bmp a 32 bit. Ogni pixel di file non indicizzati .bmp contiene un colore, a differenza dei pixel dei file indicizzati .bmp, che contengono un indice in una tabella dei colori.

Disegno e modifica di forme e immagini

Dopo la creazione, è possibile utilizzare un oggetto Graphics per disegnare linee e forme, eseguire il rendering di testo o visualizzare e modificare le immagini. Gli oggetti principal utilizzati con l'oggetto Graphics sono:

  • Classe Pen: utilizzata per disegnare linee, strutturare forme o eseguire il rendering di altre rappresentazioni geometriche.

  • Classe Brush: utilizzata per riempire aree di grafica, ad esempio forme riempite, immagini o testo.

  • Classe Font: fornisce una descrizione delle forme da usare durante il rendering del testo.

  • Struttura Color: rappresenta i diversi colori da visualizzare.

Per utilizzare l'oggetto grafico creato

Vedere anche