Vorgehensweise: Erstellen von Grafikobjekten zum Zeichnen

Bevor Sie mit GDI+ Linien und Formen zeichnen, Text rendern oder Bilder anzeigen und bearbeiten können, müssen Sie ein Graphics-Objekt erstellen. Das Graphics-Objekt stellt eine GDI+-Zeichenoberfläche dar und ist das Objekt, das zum Erstellen grafischer Bilder verwendet wird.

Es gibt zwei Schritte bei der Arbeit mit Grafiken:

  1. Erstellen eines Graphics-Objekts.

  2. Verwenden des Graphics-Objekts, um Linien und Formen zu zeichnen, Text zu rendern oder Bilder anzuzeigen und zu bearbeiten.

Erstellen eines Grafikobjekts

Ein Grafikobjekt kann auf verschiedene Weisen erstellt werden.

So erstellen Sie ein Grafikobjekt

  • Empfangen eines Verweises auf ein Grafikobjekt als Teil des PaintEventArgsPaint-Ereignisses eines Formulars oder Steuerelements. Dies ist die gängige Weise, wie Sie einen Verweis auf ein Grafikobjekt erhalten, wenn Sie Code zum Zeichnen für ein Steuerelement erstellen. Ebenso können Sie ein Grafikobjekt auch als Eigenschaft des PrintPageEventArgs-Ereignisses erhalten, wenn das PrintPage-Ereignis für ein PrintDocument behandelt wird.

    Oder

  • Rufen Sie die CreateGraphics-Methode eines Steuerelements oder Formulars auf, um einen Verweis auf ein Graphics-Objekt abzurufen, das die Zeichenoberfläche dieses Steuerelements oder Formulars darstellt. Verwenden Sie diese Methode, wenn Sie auf einem Formular oder Steuerelement zeichnen möchten, das bereits vorhanden ist.

    Oder

  • Erstellen Sie ein Graphics-Objekt aus einem beliebigen Objekt, das von Image erbt. Dieser Ansatz ist nützlich, wenn Sie ein bereits vorhandenes Bild ändern möchten.

    Die folgenden Abschnitte enthalten weitere Details zu jedem dieser Prozesse.

PaintEventArgs im Paint-Ereignishandler

Beim Programmieren des PaintEventHandler für Steuerelemente oder der PrintPage für ein PrintDocument wird ein Grafikobjekt als eine der Eigenschaften von PaintEventArgs oder PrintPageEventArgs bereitgestellt.

So rufen Sie einen Verweis auf ein Grafikobjekt aus den PaintEventArgs im Paint-Ereignis ab

  1. Deklarieren Sie das Graphics-Objekt.

  2. Weisen Sie die Variable zu, um auf das als Teil von PaintEventArgs übergebene Graphics-Objekt zu verweisen.

  3. Fügen Sie Code ein, um das Formular oder Steuerelement zu zeichnen.

    Im folgenden Beispiel wird gezeigt, wie sie auf ein Graphics-Objekt aus den PaintEventArgs im Paint-Ereignis verweisen:

    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-Methode

Sie können auch die CreateGraphics-Methode eines Steuerelements oder Formulars verwenden, um einen Verweis auf ein Graphics-Objekt abzurufen, das die Zeichenoberfläche dieses Steuerelements oder Formulars darstellt.

So erstellen Sie ein Grafikobjekt mit der CreateGraphics-Methode

  • Rufen Sie die CreateGraphics-Methode des Formulars oder Steuerelements auf, auf dem Sie Grafiken rendern möchten.

    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();  
    

Erstellen aus einem Bildobjekt (Image)

Zusätzlich können Sie ein Grafikobjekt aus einem beliebigen Objekt erstellen, das aus der Image-Klasse abgeleitet wird.

So erstellen Sie ein Grafikobjekt aus einem Bild (Image)

  • Rufen Sie die Graphics.FromImage-Methode auf, wobei Sie den Namen der Image-Variable angeben, aus der Sie ein Graphics-Objekt erstellen möchten.

    Im folgenden Beispiel wird gezeigt, wie Sie ein Bitmap-Objekt verwenden:

    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);  
    

Hinweis

Sie können nur Graphics-Objekte aus nicht indizierten BMP-Dateien erstellen, z. B. 16-Bit-, 24-Bit- und 32-Bit-BMP-Dateien. Jedes Pixel von nicht indizierten BMP-Dateien enthält eine Farbe, im Gegensatz zu Pixeln indizierter BMP-Dateien, die einen Index für eine Farbtabelle enthalten.

Zeichnen und Bearbeiten von Formen und Bildern

Nachdem ein Graphics-Objekt erstellt wurde, kann es verwendet werden, um Linien und Formen zu zeichnen, Text zu rendern oder Bilder anzuzeigen und zu bearbeiten. Die wichtigsten Objekte, die mit dem Graphics-Objekt verwendet werden, sind:

  • Die Pen-Klasse: Wird zum Zeichnen von Linien, zum Konturieren von Formen oder zum Rendern anderer geometrischer Darstellungen verwendet.

  • Die Brush-Klasse: Wird zum Ausfüllen von Grafikbereichen verwendet, z. B. gefüllte Formen, Bilder oder Text.

  • Die Font-Klasse: Stellt eine Beschreibung der Formen bereit, die beim Rendern von Text verwendet werden sollen.

  • Die Color-Struktur: Stellt die verschiedenen Farben dar, die angezeigt werden sollen.

So verwenden Sie das Grafikobjekt, das Sie erstellt haben

Weitere Informationen