Partilhar via


Como: Processar manualmente os gráficos em buffer

Se você estiver gerenciando seus próprios elementos gráficos de buffer, você precisará ser capaz de criar e processar os buffers de elementos gráficos. Você pode criar instâncias da BufferedGraphics classe que está associado com as superfícies de desenho na tela, chamando o Allocate. Esse método cria uma BufferedGraphics instância que está associada uma superfície de processamento específico, como um formulário ou controle. Após você ter criado um BufferedGraphics instância, você pode desenhar gráficos para o buffer que ela representa através do Graphics propriedade. Depois que você executou todas as operações de elementos gráficos, você pode copiar o conteúdo do buffer para a tela chamando o Render método.

ObservaçãoObservação

Se você realizar o seu próprio processamento, o consumo de memória aumentará, embora o aumento só pode ser pequeno.

Para exibir manualmente em buffer elementos gráficos

  1. Obter uma referência a uma instância de BufferedGraphicsContext classe. Para obter mais informações, consulte Como: Gerenciar manualmente no buffer de elementos gráficos.

  2. Criar uma instância da BufferedGraphics classe chamando o Allocate método, conforme mostrado no seguinte exemplo de código.

            ' This example assumes the existence of a form called Form1.
            Dim currentContext As BufferedGraphicsContext
            Dim myBuffer As BufferedGraphics
            ' Gets a reference to the current BufferedGraphicsContext.
            currentContext = BufferedGraphicsManager.Current
            ' Creates a BufferedGraphics instance associated with Form1, and with 
            ' dimensions the same size as the drawing surface of Form1.
            myBuffer = currentContext.Allocate(Me.CreateGraphics, _
               Me.DisplayRectangle)
    
    
    // This example assumes the existence of a form called Form1.
    BufferedGraphicsContext currentContext;
    BufferedGraphics myBuffer;
    // Gets a reference to the current BufferedGraphicsContext
    currentContext = BufferedGraphicsManager.Current;
    // Creates a BufferedGraphics instance associated with Form1, and with 
    // dimensions the same size as the drawing surface of Form1.
    myBuffer = currentContext.Allocate(this.CreateGraphics(),
       this.DisplayRectangle);
    
  3. Desenhar os gráficos para o buffer de elementos gráficos, definindo a Graphics propriedade. Por exemplo:

    ' Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, Me.DisplayRectangle)
    
    // Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, this.DisplayRectangle);
    
  4. Quando você tiver concluído todas as operações de desenho para o buffer de elementos gráficos, chamar o Render método para processar o buffer, para a superfície de desenho associada a esse buffer, ou para a superfície de desenho especificada, como mostrado no seguinte exemplo de código.

    ' Renders the contents of the buffer to the drawing surface associated 
    ' with the buffer.
    myBuffer.Render()
    ' Renders the contents of the buffer to the specified drawing surface.
    myBuffer.Render(Me.CreateGraphics)
    
    // This example assumes the existence of a BufferedGraphics instance
    // called myBuffer.
    // Renders the contents of the buffer to the drawing surface associated 
    // with the buffer.
    myBuffer.Render();
    // Renders the contents of the buffer to the specified drawing surface.
    myBuffer.Render(this.CreateGraphics());
    
  5. Depois que você tiver terminado de processamento de gráficos, chamar o Dispose método o BufferedGraphics instância para liberar recursos do sistema.

    myBuffer.Dispose()
    
    myBuffer.Dispose();
    

Consulte também

Tarefas

Como: Gerenciar manualmente no buffer de elementos gráficos

Referência

BufferedGraphicsContext

BufferedGraphics

Conceitos

Duplo em buffer gráficos