Dela via


Anvisningar: Skapa grafikobjekt för ritning

Innan du kan rita linjer och former, återge text eller visa och ändra bilder med GDI+, måste du skapa ett Graphics objekt. Det Graphics objektet representerar en GDI+ rityta och är det objekt som används för att skapa grafiska bilder.

Det finns två steg i arbetet med grafik:

  1. Skapa ett Graphics objekt.

  2. Använd det Graphics objektet för att rita linjer och former, återge text eller visa och ändra bilder.

Skapa ett grafikobjekt

Ett grafikobjekt kan skapas på flera olika sätt.

Skapa ett grafikobjekt

  • Få en referens till ett grafiskt objekt som en del av PaintEventArgs i händelsen Paint av ett formulär eller en kontroll. Det här är vanligtvis hur du hämtar en referens till ett grafikobjekt när du skapar målerikod för en kontroll. På samma sätt kan du också hämta ett grafikobjekt som en egenskap för PrintPageEventArgs när du hanterar händelsen PrintPage för en PrintDocument.

    -eller-

  • Anropa CreateGraphics-metoden för en kontroll eller ett formulär för att hämta en referens till ett Graphics objekt som representerar ritytan för kontrollen eller formuläret. Använd den här metoden om du vill rita på ett formulär eller en kontroll som redan finns.

    -eller-

  • Skapa ett Graphics objekt från alla objekt som ärver från Image. Den här metoden är användbar när du vill ändra en redan befintlig avbildning.

    Följande avsnitt innehåller information om var och en av dessa processer.

PaintEventArgs i Paint-händelsehanterare

När du programmerar PaintEventHandler för kontroller eller PrintPage för en PrintDocumenttillhandahålls ett grafikobjekt som en av egenskaperna för PaintEventArgs eller PrintPageEventArgs.

Hämta en referens till ett grafikobjekt från PaintEventArgs i Paint-händelsen

  1. Deklarera objektet Graphics.

  2. Tilldela variabeln för att referera till det Graphics objekt som skickas som en del av PaintEventArgs.

  3. Infoga kod för att måla formuläret eller kontrollen.

    I följande exempel visas hur du refererar till ett Graphics objekt från PaintEventArgs i händelsen 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-metod

Du kan också använda CreateGraphics-metoden för en kontroll eller ett formulär för att hämta en referens till ett Graphics objekt som representerar ritytan för kontrollen eller formuläret.

Skapa ett grafikobjekt med metoden CreateGraphics

  • Anropa metoden CreateGraphics i formuläret eller kontrollen som du vill återge grafik på.

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

Skapa från ett bildobjekt

Dessutom kan du skapa ett grafikobjekt från alla objekt som härleds från klassen Image.

Skapa ett grafikobjekt från en bild

  • Anropa metoden Graphics.FromImage och ange namnet på den bildvariabel som du vill skapa ett Graphics objekt från.

    I följande exempel visas hur du använder ett Bitmap-objekt:

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

Not

Du kan bara skapa Graphics objekt från icke-indexerade .bmp filer, till exempel 16-bitars, 24-bitars och 32-bitars .bmp filer. Varje bildpunkt i icke-indexerade .bmp filer har en färg, till skillnad från bildpunkter i indexerade .bmp filer, som innehåller ett index till en färgtabell.

Rita och manipulera former och bilder

När det har skapats kan ett Graphics objekt användas för att rita linjer och former, återge text eller visa och ändra bilder. Huvudobjekten som används med Graphics-objektet är:

  • Klassen Pen – används för att rita linjer, beskriva former eller återge andra geometriska representationer.

  • Klassen Brush – används för att fylla i områden med grafik, till exempel fyllda former, bilder eller text.

  • Klassen Font – Innehåller en beskrivning av vilka former som ska användas vid återgivning av text.

  • Strukturen Color – Representerar de olika färger som ska visas.

Så här använder du grafikobjektet som du har skapat

Se även