1

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

一切都很好,直到我最小化并恢复应用程序。此时,图像停止动画并仅显示上一帧。

注意:

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

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

4

2 回答 2

1

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

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

有关详细信息,请参阅此 MSDN 线程

于 2010-03-24T17:41:02.487 回答
0

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

于 2009-07-28T06:10:14.380 回答