Frage

Ich habe eine .NET WinForms-Anwendung mit einem animierten GIF in einem PictureBox.Es ist ein lade-animation angezeigt, während Sie ein BackgroundWorker einige Verarbeitung in einem anderen thread.Ich lade das Bild durch einstellen der Image Eigentum und animiert auf Ihrem eigenen.

Alles ist in Ordnung, bis ich zum minimieren und wiederherstellen der Anwendung.An welcher Stelle, das Bild Stoppt die Animation und zeigt nur, was das Bild war letzten auf.

Beachten Sie, dass:

  • Der hintergrund-thread immer noch gut läuft und kein "Geschäft" der Anwendung betroffen ist.
  • Anschließend angezeigten animierte GIFs tun gut funktionieren (es sei denn, die Anwendung ist wieder minimiert).

Weiß jemand, was dieses problem verursacht?Irgendwelche Problemumgehungen?

War es hilfreich?

Lösung

Anscheinend ist der PictureBox ausdrücklich Stoppt die animation, wenn das Fenster verdeckt ist.Das PictureBox-Steuerelement sollte für ungültig erklärt werden und neu gestrichen werden, wenn das Fenster nicht mehr verdeckt, sondern die Nichtigkeit Ereignis geschieht nicht automatisch auf Vista.

Eine Problemumgehung ist das hinzufügen einer timer auf das Formular aufruft PictureBox.Invalidate() alle 500 MS.Dadurch wird sichergestellt, dass die animation nie aufhört.

Finden in diesem MSDN-thread weitere Informationen.

Andere Tipps

Ich weiß nicht, was es verursacht, aber was ist, wenn Sie erkennen, wenn es minimiert ist und es ist jedes mal wiederhergestellt, es wieder einzublenden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top