c# - 需要在gif中选择一个帧

标签 c# winforms picturebox gif animated-gif

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

我试过:

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

但它没有显示任何变化。

我也试过 Image animator 也没有运气。我的高中工程期末项目真的需要帮助。

最佳答案

我发现 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);

这是我刚刚找到的一般解决方案 :) 希望它能帮助其他人...

关于c# - 需要在gif中选择一个帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008254/

相关文章:

c# - 为什么 KeyPress 的消息框显示在 KeyDown 之前?

c# - 慢速图片框

c# winforms toolstripmenuitem 更改背景

c# - 如何在 C# 中显示所需参数的记录?

c# - 使用 C# WinForms 的透明图像

c# - 如何使面板以编程方式滚动以显示其自动调整大小图片框

c# - ClosedXML - 创建多个数据透视表

c# - Entity Framework - 如何检查表是否存在?

Java 与 C# : Java and C# subclasses with method overrides output different results in same scenario

c# - 如何在不使用存储库的情况下共享 EntityFramework 6 数据上下文?