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 Graphics objeto. O Graphics objeto 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 Graphics objeto.

  2. Usando o Graphics objeto 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 PrintPage evento para um PrintDocument.

    - ou -

  • Chame o CreateGraphics método de um controle ou formulário para obter uma referência a um Graphics objeto 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 a partir de qualquer objeto que herde 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 do Evento Paint

Ao programar o PaintEventHandler para controles, ou 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 Graphics objeto.

  2. Atribua a variável para se referir ao Graphics objeto 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 a partir 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 CreateGraphics método de um controle ou formulário para obter uma referência a um Graphics objeto que representa a superfície de desenho desse controle ou formulário.

Para criar um objeto Graphics com o método CreateGraphics

  • Chame o CreateGraphics método do formulário ou controle no qual você deseja renderizar elementos 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 Image classe.

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

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

    O exemplo a seguir mostra como usar um Bitmap objeto:

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

Observação

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

Desenhando e manipulando formas e imagens

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

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

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

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

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

Para usar o objeto Gráficos que você criou

Consulte também