我需要重新启动gif图像,以便从第一帧开始。 我对C#中的gif图像经验不足。我在C#windows窗体应用程序上工作。我的gif图像在图片框中。我需要在每次例如按下按钮时重新启动它。
我尝试过:
pictureBox1.Image.SelectActiveFrame(new FrameDimension(pictureBox1.Image.FrameDimensionsList[0]), 0)
但它没有显示任何变化。
我也尝试过Image animator也没有运气。我真的需要帮助,这是我在高中工程的最后一个项目。
答案 0 :(得分:2)
我尝试了这个解决方案并且工作正常:
Image animated = pictureBox1.Image;
pictureBox1.Image = animated;
这样,您重置pictureBox1.Image
,以便动画GIF从头开始。
答案 1 :(得分:2)
我发现Image.SelectActiveFrame()
似乎不起作用,因为它的工作方式与您的想法不同。如果有一些控件读取其帧,它只设置初始帧,第一帧读取是活动帧。因此,在SelectActiveFrame()
之后,您必须将pictureBox的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);
这是我刚刚找到的一般解决方案:)希望它有助于其他人......