Udostępnij za pośrednictwem


Instrukcje: tworzenie obiektów graficznych na potrzeby rysunku

Zanim będzie można rysować linie i kształty, renderować tekst lub wyświetlać obrazy za pomocą interfejsu GDI+, należy utworzyć obiekt Graphics. Obiekt Graphics reprezentuje powierzchnię rysunkową GDI+ i jest obiektem używanym do tworzenia obrazów graficznych.

Istnieją dwa kroki pracy z grafiką:

  1. Tworzenie obiektu Graphics.

  2. Używanie obiektu Graphics do rysowania linii i kształtów, renderowania tekstu lub wyświetlania obrazów i manipulowania nimi.

Tworzenie obiektu graficznego

Obiekt graficzny można utworzyć na różne sposoby.

Aby utworzyć obiekt graficzny

  • Otrzymaj odwołanie do obiektu graficznego jako część PaintEventArgs w zdarzeniu Paint formularza lub kontrolki. Zwykle uzyskujesz odwołanie do obiektu graficznego podczas tworzenia kodu malowania dla kontrolki. Podobnie można również uzyskać obiekt graficzny jako właściwość PrintPageEventArgs podczas obsługi zdarzenia PrintPage dla PrintDocument.

    -lub-

  • Wywołaj metodę CreateGraphics kontrolki lub formularza, aby uzyskać odwołanie do obiektu Graphics reprezentującego powierzchnię rysunku tej kontrolki lub formularza. Użyj tej metody, jeśli chcesz rysować na formularzu lub kontrolce, która już istnieje.

    -lub-

  • Utwórz obiekt Graphics z dowolnego obiektu dziedziczonego z Image. Takie podejście jest przydatne, gdy chcesz zmienić już istniejący obraz.

    Poniższe sekcje zawierają szczegółowe informacje o każdym z tych procesów.

PaintEventArgs w programie obsługi zdarzeń malowania

Podczas programowania PaintEventHandler dla kontrolek lub PrintPage dla PrintDocumentobiekt graficzny jest udostępniany jako jedna z właściwości PaintEventArgs lub PrintPageEventArgs.

Aby uzyskać odwołanie do obiektu grafiki z programu PaintEventArgs w zdarzeniu Paint

  1. Zadeklaruj obiekt Graphics.

  2. Przypisz zmienną, aby odwoływać się do obiektu Graphics przekazanego w ramach PaintEventArgs.

  3. Wstaw kod, aby malować formularz lub kontrolkę.

    W poniższym przykładzie pokazano, jak odwołać się do obiektu Graphics z PaintEventArgs w zdarzeniu 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.  
       }  
    

metoda CreateGraphics

Można również użyć metody CreateGraphics kontrolki lub formularza, aby uzyskać odwołanie do obiektu Graphics, który reprezentuje powierzchnię rysunku tej kontrolki lub formularza.

Aby utworzyć obiekt Grafiki za pomocą metody CreateGraphics

  • Wywołaj metodę CreateGraphics formularza lub kontrolki, na której chcesz renderować grafikę.

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

Tworzenie na podstawie obiektu obrazu

Ponadto można utworzyć obiekt graficzny na podstawie dowolnego obiektu pochodzącego z klasy Image.

Aby utworzyć obiekt grafiki na podstawie obrazu

  • Wywołaj metodę Graphics.FromImage, podając nazwę zmiennej Image, z której chcesz utworzyć obiekt Graphics.

    W poniższym przykładzie pokazano, jak używać obiektu 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);  
    

Notatka

Obiekty Graphics można tworzyć tylko na podstawie nieindeksowanych plików .bmp, takich jak 16-bitowe, 24-bitowe i 32-bitowe pliki .bmp. Każdy piksel nieindeksowanych plików .bmp zawiera kolor, w przeciwieństwie do pikseli indeksowanych plików .bmp, które przechowują indeks w tabeli kolorów.

Rysowanie i manipulowanie kształtami i obrazami

Po utworzeniu obiektu Graphics może służyć do rysowania linii i kształtów, renderowania tekstu lub wyświetlania obrazów i manipulowania nimi. Obiekty główne, które są używane z obiektem Graphics, to:

  • Klasa Pen — używana do rysowania linii, tworzenia konspektów lub renderowania innych reprezentacji geometrycznych.

  • Klasa Brush — służy do wypełniania obszarów grafiki, takich jak wypełnione kształty, obrazy lub tekst.

  • Klasa Font — zawiera opis kształtów do użycia podczas renderowania tekstu.

  • Struktura Color — reprezentuje różne kolory do wyświetlenia.

Aby użyć utworzonego obiektu grafiki

Zobacz też