最小化和恢复时图像动画停止

时间:2009-06-04 06:28:33

标签: .net winforms picturebox animated-gif minimize

我有一个.NET WinForms应用程序,在PictureBox中有一个动画GIF。这是一个加载动画,显示BackgroundWorker在另一个线程中进行一些处理。我通过设置Image属性来加载图像,并且它自己动画。

一切正常,直到我最小化并恢复应用程序。此时,图像停止动画,只显示最后一帧。

请注意:

  • 后台线程仍然正常运行,并且应用程序的“业务”都不会受到影响。
  • 随后显示的动画GIF可以正常工作(除非应用程序再次最小化)。

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

2 个答案:

答案 0 :(得分:1)

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

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

有关详细信息,请参阅this MSDN thread

答案 1 :(得分:0)

我不知道是什么原因造成的,但是如果你发现它被最小化并且每次恢复它会重新显示它会怎么样?