Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El parpadeo es un problema común al diseñar gráficos. Las operaciones de gráficos que requieren varias operaciones de pintura complejas pueden hacer que las imágenes representadas parezcan parpadear o tener una apariencia inaceptable de otro modo. Para solucionar estos problemas, .NET Framework proporciona acceso al almacenamiento en búfer doble.
El almacenamiento en búfer doble usa un búfer de memoria para solucionar los problemas de parpadeo asociados con varias operaciones de pintura. Cuando se habilita el almacenamiento en búfer doble, todas las operaciones de pintura se representan primero en un búfer de memoria en lugar de la superficie de dibujo en la pantalla. Una vez completadas todas las operaciones de pintura, el búfer de memoria se copia directamente en la superficie de dibujo asociada con él. Dado que solo se realiza una operación de gráficos en la pantalla, se elimina el parpadeo de imagen asociado a operaciones complejas de pintura.
Buffer de doble memoria predeterminado
La manera más fácil de usar el almacenamiento en búfer doble en las aplicaciones es usar el almacenamiento en búfer doble predeterminado para formularios y controles proporcionados por .NET Framework. Para habilitar el almacenamiento en búfer doble predeterminado en los controles de Windows Forms y controles personalizados, puede establecer la propiedad DoubleBuffered en true
o utilizar el método SetStyle. Para obtener más información, consulte Cómo: Reducir el parpadeo de gráficos con doble búfer para formularios y controles.
Administración manual de gráficos en memoria intermedia
Para escenarios de almacenamiento en búfer doble más avanzados, como la animación o la administración avanzada de memoria, puede usar las clases de .NET Framework para implementar su propia lógica de almacenamiento en búfer doble. La clase responsable de asignar y administrar búferes de gráficos individuales es la BufferedGraphicsContext clase . Cada dominio de aplicación tiene su propia instancia predeterminada BufferedGraphicsContext que administra todo el almacenamiento en búfer doble predeterminado para esa aplicación. En la mayoría de los casos, solo habrá un dominio de aplicación por aplicación, por lo que generalmente hay un valor predeterminado BufferedGraphicsContext por aplicación. Las instancias predeterminadas BufferedGraphicsContext son gestionadas por la clase BufferedGraphicsManager. Puede recuperar una referencia a la instancia predeterminada BufferedGraphicsContext llamando a Current. También puede crear una instancia dedicada BufferedGraphicsContext , que puede mejorar el rendimiento de las aplicaciones de uso gráfico intensivo. Para obtener información sobre cómo crear una BufferedGraphicsContext instancia, vea How to: Manually Manage Buffered Graphics.
Visualización manual de gráficos almacenados en búfer
Puede usar una instancia de la BufferedGraphicsContext clase para crear búferes de gráficos llamando a BufferedGraphicsContext.Allocate, que devuelve una instancia de la BufferedGraphics clase . Un BufferedGraphics objeto administra un búfer de memoria asociado a una superficie de representación, como un formulario o control.
Una vez creada la instancia, la clase administra la BufferedGraphics representación en un búfer de gráficos en memoria. Puede representar gráficos en el búfer de memoria a través de Graphics, que expone un Graphics objeto que representa directamente el búfer de memoria. Puede pintar este Graphics objeto tal como lo haría con un Graphics objeto que representa una superficie de dibujo. Después de dibujar todos los gráficos en el búfer, puede usar el BufferedGraphics.Render para copiar el contenido del búfer en la superficie de dibujo de la pantalla.
Para obtener más información sobre el uso de la clase BufferedGraphics, vea Representación manual de gráficos almacenados en búfer. Para obtener más información sobre la representación de gráficos, vea Gráficos y dibujos en formularios Windows Forms.
Consulte también
- BufferedGraphics
- BufferedGraphicsContext
- BufferedGraphicsManager
- Cómo renderizar manualmente gráficos almacenados en búfer
- Cómo: Reducir el parpadeo de gráficos con doble búfer para formularios y controles
- Cómo: Administrar manualmente gráficos almacenados en búfer
- Gráficos y dibujo en formularios Windows Forms
.NET Desktop feedback