Compartilhar via


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