Como Gerenciar Elementos Gráficos em Buffer Manualmente

Para cenários de buffer duplo mais avançados, você pode usar as classes do .NET Framework para implementar sua própria lógica de buffer duplo. A classe responsável por alocar e gerenciar buffers gráficos individuais é a BufferedGraphicsContext classe. Cada aplicativo tem seu próprio padrão BufferedGraphicsContext que gerencia todo o buffer duplo padrão para esse aplicativo. Você pode recuperar uma referência a essa instância chamando o Current.

Para obter uma referência para o BufferedGraphicsContext padrão

  • Defina a propriedade, conforme mostrado no exemplo de código a Current seguir.

    BufferedGraphicsContext myContext;
    myContext = BufferedGraphicsManager.Current;
    
    Dim myContext As BufferedGraphicsContext
    myContext = BufferedGraphicsManager.Current
    
    

    Observação

    Você não precisa chamar o Dispose método na BufferedGraphicsContext referência que você recebe da BufferedGraphicsManager classe. O BufferedGraphicsManager manipula toda a alocação e distribuição de memória para instâncias padrão BufferedGraphicsContext .

    Para aplicativos graficamente intensivos, como animação, às vezes você pode melhorar o BufferedGraphicsContext desempenho usando um dedicado BufferedGraphicsContext em vez do fornecido pelo BufferedGraphicsManager. Isso permite que você crie e gerencie buffers de gráficos individualmente, sem incorrer na sobrecarga de desempenho de gerenciar todos os outros elementos gráficos em buffer associados à sua aplicação, embora a memória consumida pela aplicação será maior.

Para criar um BufferedGraphicsContext dedicado

  • Declare e crie uma nova instância da BufferedGraphicsContext classe, conforme mostrado no exemplo de código a seguir.

    BufferedGraphicsContext myContext;
    myContext = new BufferedGraphicsContext();
    // Insert code to create graphics here.
    // On a non-default BufferedGraphicsContext instance, you should always
    // call Dispose when finished.
    myContext.Dispose();
    
    Dim myContext As BufferedGraphicsContext
    myContext = New BufferedGraphicsContext
    ' Insert code to create graphics here.
    ' On a nondefault BufferedGraphicsContext instance, you should always 
    ' call Dispose when finished.
    myContext.Dispose()
    
    

Confira também