Анимация изображения останавливается при сворачивании и восстановлении - PullRequest
1 голос
/ 04 июня 2009

У меня есть приложение .NET WinForms с анимированным GIF в PictureBox. Это анимация загрузки, показанная в то время как BackgroundWorker выполняет некоторую обработку в другом потоке. Я загружаю изображение, устанавливая свойство Image, и оно само анимируется.

Все хорошо, пока я не сверну и не восстановлю приложение. В этот момент изображение перестает анимироваться и просто отображает последний кадр.

Обратите внимание, что:

  • Фоновый поток по-прежнему работает нормально, и ни один из "бизнес" приложений не затрагивается.
  • Впоследствии отображаемые анимированные GIF-файлы работают нормально (если приложение не свернуто снова).

Кто-нибудь знает, что вызывает эту проблему? Есть обходные пути?

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Очевидно, PictureBox явно останавливает анимацию всякий раз, когда окно закрыто. PictureBox должен быть признан недействительным и перекрашен, когда окно больше не закрыто, но в Vista событие аннулирования не происходит автоматически.

Одним из обходных путей является добавление в форму таймера, который вызывает PictureBox.Invalidate () каждые 500 мс. Это гарантирует, что анимация никогда не останавливается.

См. этот поток MSDN для получения дополнительной информации.

0 голосов
/ 28 июля 2009

Я не знаю, что вызывает это, но что, если вы обнаружите, когда он свернут и каждый раз, когда он восстанавливается, снова отображается?

...