也许这是一个愚蠢的问题,但我无法解决下一个问题。 我正在将gif动画放在按钮上。 但它按顺序循环播放,从不停止。 我需要使其在完成一圈后停止。
Bitmap boom = new Bitmap("boom.gif");
b[ship2.Column, ship2.Row].Image = boom;
我的代码有什么问题?
Bitmap boom = new Bitmap("boom.gif");
b[ship2.Column, ship2.Row].Image = boom;
我的代码有什么问题?
pictureBox
并尝试此代码(如果可以实现)。// this starts animation
System.Drawing.ImageAnimator.Animate(pictBox.Image, OnFrameChanged);
// this stops animation
System.Drawing.ImageAnimator.StopAnimate(pictBox.Image, OnFrameChanged);
private void OnFrameChanged(object sender, EventArgs e)
{
// conditions
}
int i = 0;
private void timer1_Tick(object sender, EventArgs e)
{
if (i == imageList1.Images.Count)
{
timer1.Stop();
i = 0;
}
button1.Image = imageList1.Images[i];
i++;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
你的代码没有问题。
循环次数存储在图像元数据中。因此,你需要提供一个禁用了循环的gif或者使用某种gif编辑器进行编辑。
编辑
由于它忽略了gif元数据并且一直循环,你可以使用http://gif-explode.com/获取gif的最后一帧。然后测量动画循环的毫秒数,并执行以下操作: