Como reduzir o tremor dos gráficos com buffer duplo para formulários e controlos

O buffer duplo usa um buffer de memória para resolver os problemas de tremulação associados a múltiplas operações de pintura. Quando o buffer duplo está habilitado, todas as operações de pintura são primeiro renderizadas para um buffer de memória em vez da superfície de desenho na tela. Depois que todas as operações de pintura são concluídas, o buffer de memória é copiado diretamente para a superfície de desenho associada a ele. Como apenas uma operação gráfica é executada na tela, a cintilação da imagem associada a operações de pintura complexas é eliminada. Para a maioria dos aplicativos, o buffer duplo padrão fornecido pelo .NET Framework fornecerá os melhores resultados. Os controles padrão do Windows Forms são armazenados em buffer duplo por padrão. Você pode habilitar o buffer duplo padrão em seus formulários e controles criados de duas maneiras. Você pode definir a propriedade DoubleBuffered como trueou pode chamar o método SetStyle para definir o sinalizador OptimizedDoubleBuffer como true. Ambos os métodos habilitarão o buffer duplo padrão para seu formulário ou controle e fornecerão renderização de gráficos sem cintilação. Chamar o método SetStyle é recomendado apenas para controles personalizados para os quais você escreveu todo o código de renderização.

Para cenários de buffer duplo mais avançados, como animação ou gerenciamento avançado de memória, você pode implementar sua própria lógica de buffer duplo. Para obter mais informações, consulte Como gerenciar manualmente gráficos em buffer.

Para reduzir a cintilação

  • Defina a propriedade DoubleBuffered como true.

    DoubleBuffered = true;
    
    DoubleBuffered = True
    
    

- ou -

  • Chame o método SetStyle para definir o sinalizador OptimizedDoubleBuffer como true.

    SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
    
    SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
    
    

Ver também