Compartir a través de


Cómo: Reducir el parpadeo de los gráficos con un búfer doble en formularios y controles

El búfer doble utiliza un búfer de memoria para solucionar los problemas de parpadeo asociados a varias operaciones de representación. Cuando se habilita el doble búfer, todas las operaciones de representación se representan en primer lugar en un búfer de memoria en lugar de en la pantalla. Después de finalizar todas las operaciones de representación, el búfer de memoria se copia directamente en la superficie de representación asociada. Puesto que solo se realiza una operación de gráficos en la pantalla, se elimina el parpadeo de la imagen asociado a operaciones complejas de representación. En la mayoría de las aplicaciones, el almacenamiento en búfer doble predeterminado proporcionado por .NET Framework proporcionará los mejores resultados. De forma predeterminada, los controles estándar de los formularios Windows Forms tienen un búfer doble. Se puede habilitar el búfer doble predeterminado en los formularios y en los controles creados de dos maneras. O bien se puede establecer la propiedad DoubleBuffered en true o bien llamar al método SetStyle para que establezca el marcador OptimizedDoubleBuffer en true. Ambos métodos habilitarán el búfer doble predeterminado en el formulario o control y proporcionará una representación de los gráficos sin parpadeo. Sólo se recomienda llamar al método SetStyle en los controles personalizados para los que se ha escrito todo el código de representación.

En aquellos escenarios de doble búfer más avanzados, como animación o administración de memoria avanzada, se puede implementar la lógica de doble búfer propia. Para obtener más información, vea Cómo: Administrar manualmente gráficos almacenados en búfer.

Para reducir el parpadeo

  • Establezca la propiedad DoubleBuffered en true.

            DoubleBuffered = True
    
    
    DoubleBuffered = true;
    

O bien

  • Llame al método SetStyle para establecer el marcador OptimizedDoubleBuffer en true.

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

Vea también

Referencia

DoubleBuffered

SetStyle

Conceptos

Gráficos de doble búfer

Otros recursos

Gráficos y dibujos en Windows Forms