我试图弄清楚如何确保我通过
GIF image
放入 WindowsForm 项目的 picturebox
仅循环一次,并且即使在浏览了与我一样多的有此问题的网站后仍然找不到答案能找到。
我知道使用 Picturebox 程序员会失去对循环的控制(如果您在编辑器中创建 gif 动画时仅设置循环一次),并且我必须以某种方式获得一个代码,该代码基本上会说明 gif 动画何时到达某个特定帧...在我的例子中,最后一个是数字 7,并在 430 毫秒 (190,40,40,40,40,40,40) 内到达,gif 动画将被处理。
所以整个想法是制作一个简单的气球游戏,在 ballon_grey 图片框上按下鼠标后,会有飞行动画和爆炸动画。
看起来像这样:
private void timer1_Tick(object sender, EventArgs e)
{
//makes balloon going up
balloon_grey.Location = new Point(balloon_grey.Location.X, balloon_grey.Location.Y - 3);
}
private void balloon_grey_Click(object sender, EventArgs e)
{
//forces balloon_grey picturebox to change animation to balloon_grey_explosion.gif
balloon_grey.Image = Image.FromFile("balloon_grey_explosion.gif");
//gets the amount of frames from the gif animation...don't know if this is needed to reach the goal
int frames = Properties.Resources.balloon_grey_explosion.GetFrameCount(FrameDimension.Time);
}
感谢您的宝贵时间以及有关该问题的任何建议。
我正在使用 VB.NET 进行编程,一旦您了解了如何使用 C# 进行编程,我希望这对您有用。
这将停止您选择的帧中的循环,在我的示例中是在第 18 帧中:
Dim gif As Image = PictureBox3.Image
Dim fd As New Imaging.FrameDimension(gif.FrameDimensionsList()(0))
gif.SelectActiveFrame(fd, 18)
PictureBox3.Enabled = False