2009-06-04 11 views
1

J'ai une application .NET WinForms avec un GIF animé dans un PictureBox. C'est une animation de chargement, affichée pendant qu'un BackgroundWorker effectue un traitement dans un autre thread. Je charge l'image en définissant la propriété Image et il s'anime tout seul.L'animation de l'image s'arrête sur la minimisation et la restauration

Tout va bien jusqu'à ce que je minimise et restaure l'application. À partir de ce moment, l'image arrête d'animer et affiche simplement la dernière image.

Notez que:

  • Le fil d'arrière-plan fonctionne toujours bien et aucun des « affaires » de l'application est affectée.
  • Les GIF animés affichés ultérieurement fonctionnent correctement (à moins que l'application ne soit à nouveau réduite).

Est-ce que quelqu'un sait ce qui cause ce problème? Des solutions de contournement?

Répondre

1

Apparemment, PictureBox arrête explicitement l'animation lorsque la fenêtre est masquée. Le PictureBox doit être invalidé et repeint lorsque la fenêtre n'est plus masquée, mais l'événement d'invalidation ne se produit pas automatiquement sur Vista. Une solution consiste à ajouter une minuterie à votre formulaire qui appelle PictureBox.Invalidate() toutes les 500ms. Cela garantira que l'animation ne s'arrête jamais. Pour plus d'informations, voir this MSDN thread.

+0

Intéressant et merci pour le lien. Heureux de savoir que quelqu'un d'autre a aussi le problème. La solution de contournement est assez ennuyeux mais le meilleur que nous avons, je pense. –

0

Je ne sais pas ce qui le cause mais que se passe-t-il si vous détectez quand il est minimisé et chaque fois qu'il est restauré le réafficher?

Questions connexes