动画GIF不会停止循环Winforms

时间:2013-01-03 21:27:51

标签: vb.net winforms visual-studio-2010

我在我的表单上的PictureBox中有一个动画gif,但它总是循环播放,我怎么才能让它只播放一次?

在另一个程序(例如浏览器)中查看gif时,它只会播放一次。然而,在我的表单上,它一直循环,动画循环之间只有一个非常短暂的暂停。

2 个答案:

答案 0 :(得分:1)

如果您可以确定周期的长度,可以在适当的时间后禁用图片框来停止动画。

编辑:在查看PictureBox源代码之后,看起来没有办法在PictureBox本身中修改此行为。

然而,确实存在一个可行的替代方案:ImageAnimator类,它是PictureBox内部使用的类。 MSDN文章提供了一个如何动画一次的好样本。

答案 1 :(得分:0)

这是一个相当简单的解决方案。我为动画gif的一个循环的总组合时间创建了一个计时器。当计时器停止时,它会将图像更改为图片框中的静止图像。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    PictureBox1.Image = Image.FromFile("c:\GIF\AnimatedGif.gif")
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    PictureBox1.Image = Image.FromFile("c:\GIF\StillImage.gif")
    Timer1.Enabled = False
End Sub