Compartilhar via


Como criar objetos gráficos para desenho

Antes de desenhar linhas e formas, renderizar texto ou exibir e manipular imagens com GDI+, você precisa criar um objeto Graphics. O objeto Graphics representa uma superfície de desenho GDI+ e é o objeto usado para criar imagens gráficas.

Há duas etapas para trabalhar com elementos gráficos:

  1. Criando um objeto Graphics.

  2. Usando o objeto Graphics para desenhar linhas e formas, renderizar texto ou exibir e manipular imagens.

Criando um objeto gráfico

Um objeto gráfico pode ser criado de várias maneiras.

Para criar um objeto gráfico

  • Receba uma referência a um objeto gráfico como parte do PaintEventArgs no evento Paint de um formulário ou controle. Geralmente, é assim que você obtém uma referência a um objeto gráfico ao criar um código de pintura para um controle. Da mesma forma, você também pode obter um objeto gráfico como uma propriedade do PrintPageEventArgs ao manipular o evento PrintPage para um PrintDocument.

    -ou-

  • Chame o método CreateGraphics de um controle ou formulário para obter uma referência a um objeto Graphics que representa a superfície de desenho desse controle ou formulário. Use esse método se você quiser desenhar em um formulário ou controle que já existe.

    -ou-

  • Crie um objeto Graphics de qualquer objeto que herda de Image. Essa abordagem é útil quando você deseja alterar uma imagem já existente.

    As seções a seguir fornecem detalhes sobre cada um desses processos.

PaintEventArgs no manipulador de eventos Paint

Ao programar o PaintEventHandler para controles ou o PrintPage para um PrintDocument, um objeto gráfico é fornecido como uma das propriedades de PaintEventArgs ou PrintPageEventArgs.

Para obter uma referência a um objeto Graphics do PaintEventArgs no evento Paint

  1. Declare o objeto Graphics.

  2. Atribua a variável para se referir ao objeto Graphics passado como parte do PaintEventArgs.

  3. Insira o código para pintar o formulário ou o controle.

    O exemplo a seguir mostra como referenciar um objeto Graphics do PaintEventArgs no 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.  
       }  
    

Método CreateGraphics

Você também pode usar o método CreateGraphics de um controle ou formulário para obter uma referência a um objeto Graphics que representa a superfície de desenho desse controle ou formulário.

Para criar um objeto Graphics com o método CreateGraphics

  • Chame o método CreateGraphics do formulário ou controle no qual você deseja renderizar gráficos.

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

Criar com base em um objeto de imagem

Além disso, você pode criar um objeto gráfico de qualquer objeto que deriva da classe Image.

Para criar um objeto Gráfico a partir de uma imagem

  • Chame o método Graphics.FromImage, fornecendo o nome da variável Image da qual você deseja criar um objeto Graphics.

    O exemplo a seguir mostra como usar um objeto 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

Você só pode criar objetos Graphics de arquivos .bmp não indexados, como arquivos de 16 bits, 24 bits e 32 bits .bmp. Cada pixel de arquivos .bmp não indexados contém uma cor, em contraste com pixels de arquivos .bmp indexados, que mantêm um índice para uma tabela de cores.

Desenhando e manipulando formas e imagens

Depois de criado, um objeto Graphics pode ser usado para desenhar linhas e formas, renderizar texto ou exibir e manipular imagens. Os objetos principais usados com o objeto Graphics são:

  • A classe Pen — usada para desenhar linhas, estruturar formas ou renderizar outras representações geométricas.

  • A classe Brush — usada para preencher áreas de elementos gráficos, como formas preenchidas, imagens ou texto.

  • A classe Font – Fornece uma descrição de quais formas usar ao renderizar texto.

  • A estrutura Color — representa as cores diferentes a serem exibidas.

Para usar o objeto Gráficos que você criou

Consulte também