Procedura: creare oggetti Graphics per disegnare

Prima di poter disegnare linee e forme, eseguire il rendering di testo o visualizzare e modificare le immagini con GDI+, è necessario creare un Graphics oggetto . 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 Graphics oggetto .

  2. Utilizzo dell'oggetto per disegnare linee e forme, eseguire il Graphics 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 di nell'evento PaintEventArgsPaint 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, è anche possibile ottenere un oggetto grafico come proprietà di PrintPageEventArgs quando si gestisce l'evento PrintPage per un oggetto PrintDocument.

    -oppure-

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

    -oppure-

  • Creare un Graphics oggetto 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 PaintEventHandler per i controlli o PrintPage per un PrintDocumentoggetto , un oggetto grafico viene fornito come una delle proprietà di PaintEventArgs o PrintPageEventArgs.

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

  1. Dichiarare l'oggetto Graphics .

  2. Assegnare la variabile per fare riferimento all'oggetto Graphics passato come parte di PaintEventArgs.

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

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

CreateGraphics, metodo

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

Per creare un oggetto Graphics con il metodo CreateGraphics

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

Crea da un oggetto Image

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

Per creare un oggetto Graphics da un'immagine

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

    Nell'esempio seguente viene illustrato come usare un Bitmap oggetto :

    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 Graphics oggetti solo da file con estensione bmp non indicizzati, ad esempio file con estensione bmp a 16 bit, a 24 bit e a 32 bit. Ogni pixel di file con estensione bmp non indicizzata contiene un colore, a differenza dei pixel dei file con estensione bmp indicizzati, che contengono un indice in una tabella colori.

Disegno e modifica di forme e immagini

Dopo la creazione, è possibile utilizzare un Graphics oggetto per disegnare linee e forme, eseguire il rendering di testo o visualizzare e modificare le immagini. Gli oggetti principale 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 utilizzare per il rendering del testo.

  • Struttura Color : rappresenta i diversi colori da visualizzare.

Per utilizzare l'oggetto Graphics creato

Vedi anche