代码之家  ›  专栏  ›  技术社区  ›  lc.

图像动画停止最小化和还原

  •  1
  • lc.  · 技术社区  · 15 年前

    我有一个.NET WinForms应用程序,在 PictureBox . 这是一个正在加载的动画, BackgroundWorker 在另一个线程中执行某些处理。我通过设置 Image 属性和它自己的动画。

    在最小化和恢复应用程序之前,一切都很好。此时,图像停止动画,只显示最后一帧的内容。

    注意:

    • 后台线程仍然运行良好,应用程序的任何“业务”都不受影响。
    • 随后显示的动画gif工作正常(除非再次最小化应用程序)。

    有人知道这个问题的起因吗?有什么解决办法吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Ashley Tate    14 年前

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

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

    this MSDN thread 更多信息。

        2
  •  0
  •   RCIX    15 年前

    我不知道是什么导致了它,但是如果你检测到它被最小化了,并且每次它被恢复后都会重新显示呢?