2009-06-04 72 views
1

我有一个NET WinForms应用程序与动画GIF在PictureBox。这是一个加载动画,显示为BackgroundWorker在另一个线程中执行一些处理。我通过设置Image属性加载图像,并且它自己动画。图像动画停止最小化和恢复

一切都很好,直到我最小化和恢复应用程序。在这一点上,图像停止动画,只显示最后一帧。

需要注意的是:

  • 后台线程仍然运行良好,并且没有申请的“经营”的受到影响。
  • 随后显示的动画GIF确实工作正常(除非应用程序再次最小化)。

有谁知道是什么原因导致了这个问题?任何解决方法?

回答

1

显然,当窗口被遮挡时,PictureBox显式停止动画。当窗口不再被遮挡时,PictureBox应该失效并重新绘制,但失效事件不会在Vista上自动发生。

一种解决方法是向表单中添加一个计时器,每500ms调用一次PictureBox.Invalidate()。这将确保动画永不停止。

有关更多信息,请参阅this MSDN thread

+0

有趣和感谢的链接。很高兴知道别人也有这个问题。解决方法是非常烦人的,但我认为最好的。 – 2010-03-25 09:57:13

0

我不知道是什么原因引起的,但是如果检测到它最小化并且每次恢复时都会重新显示它呢?