我将GIF动画放在PictureBox内,默认情况下,我的动画不断循环播放。我需要在第一个循环之后通过执行pictureBox1.Enabled=false
来停止它,或手动将GIF动画更改为该动画的最后一帧,但是我如何捕捉到第一个循环结束的时刻?
我发现了这个问题(click),但是我不明白如何使用它,有人可以清楚地说明或描述另一种方式吗?
答案 0 :(得分:1)
解决方案是获取帧数,然后将一个事件添加到picureBox.Paint中,以检查已渲染的帧数。一旦达到帧数,则可以禁用pictureBox。
在这里,我提出了一个简单的解决方案:
int numberOfFrames = 0;
int currentFrame = 0;
public Form1()
{
InitializeComponent();
pictureBox1.Paint += new PaintEventHandler(this.pictureBox1_Paint);
FrameDimension dimension = new FrameDimension(this.pictureBox1.Image.FrameDimensionsList[0]);
numberOfFrames = this.pictureBox1.Image.GetFrameCount(dimension);
}
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
if(currentFrame == numberOfFrames)
{
this.pictureBox1.Enabled = false;
}
currentFrame++;
}