Pregunta

Tengo una aplicación .NET Windows Forms con un GIF animado en una PictureBox. Es una animación de carga, se muestra mientras que un BackgroundWorker hace algún procesamiento en otro hilo. Me carga la imagen estableciendo la propiedad Image y el anime por su cuenta.

Todo está bien hasta que minimizar y restaurar la aplicación. En ese momento, la imagen se detiene la animación y sólo muestra lo que era la última trama sucesivamente.

Tenga en cuenta que:

  • El subproceso de fondo todavía funciona muy bien y ninguno de los "negocios" de la aplicación se ve afectada.
  • GIF animados que aparecen Posteriormente-¿Funcionan bien (a menos que la aplicación se minimiza de nuevo).

¿Alguien sabe cuál es la causa de este problema? Soluciones provisionales?

¿Fue útil?

Solución

Al parecer, el cuadro de imagen se detiene de forma explícita la animación cada vez que se oscureció la ventana. El cuadro de imagen debe ser invalidado y se pintó cuando la ventana ya no está oscurecido, pero el evento de invalidación no se produce automáticamente en Vista.

Una solución consiste en añadir un temporizador al formulario que invoca PictureBox.Invalidate () cada 500 ms. Esto asegurará que la animación nunca se detiene.

este MSDN enhebrar para más información.

Otros consejos

No sé cuál es su causa, pero lo que si se detecta cuando se reduce al mínimo y cada vez que se restaura remostrado él?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top