1

我需要重新启动一个 gif 图像,以便它从第一帧开始。我对 C# 中的 gif 图像几乎没有经验。我在一个 C# windows 窗体应用程序上工作。我的 gif 图像在图片框中。例如,每次有人按下按钮时,我都需要重新启动它。

我试过做:

pictureBox1.Image.SelectActiveFrame(new FrameDimension(pictureBox1.Image.FrameDimensionsList[0]), 0)

但它没有显示任何变化。

我也试过 Image animator 也没有运气。我真的需要帮助,这是我高中工程的最后一个项目。

4

2 回答 2

4

我发现这Image.SelectActiveFrame()似乎不起作用,因为它的工作方式与您的想法不同。如果有一些控件读取它的帧,它只是设置初始帧,读取的第一帧是活动帧。因此,在您必须将pictureBoxSelectActiveFrame()的属性重新分配给该新图像之后,如下所示:Image

private void RestartToFrameIndex(int index){
   pictureBox.Image.SelectActiveFrame(new FrameDimension(pictureBox.Image.FrameDimensionsList[0]), index);
   pictureBox.Image = pictureBox.Image;
}

//If you want to restart to the first frame, just call the method above like this:
RestartToFrameIndex(0);

这是我刚刚找到的通用解决方案:)希望它可以帮助其他人......

于 2013-06-09T11:14:29.353 回答
2

我尝试了这个解决方案,它工作正常:

Image animated = pictureBox1.Image;
pictureBox1.Image = animated;

这样,您将重置pictureBox1.Image,以便动画 GIF 从头开始​​。

于 2013-06-09T10:48:41.157 回答