2009-06-04 4 views
1

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

Все в порядке, пока я не скрою и не восстановил приложение. В этот момент изображение перестает анимацию и просто отображает кадр, в котором он был последним.

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

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

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

ответ

1

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

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

Для получения дополнительной информации см. this MSDN thread.

+0

Интересно и спасибо за ссылку. Рад узнать, что у кого-то еще есть проблема. Обходной путь довольно раздражает, но, думаю, самое лучшее, что у нас есть. –

0

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

Смежные вопросы