C#如何阻止动画gif不断循环

当我的应用程序使用互联网时,我会调用一个事件。 该事件更改了由7帧组成的动画gif。 我如何只使它只循环一次框架?

private void trafficSendingActive(object sender, trafficEventArgs e) { txImage.Image = Properties.Resources.blip; } 

您可以使用System.Drawing.ImageAnimator来启动/停止gif动画

 // start System.Drawing.ImageAnimator.Animate(txImage.Image, OnFrameChanged); // stop System.Drawing.ImageAnimator.StopAnimate(txImage.Image, OnFrameChanged); private void OnFrameChanged(object sender, EventArgs e) { // frame change } 

您可以始终将图像/ gif封装在Picturebox中,当您想要停止GIF时,只需将Picturebox的Enabled属性设置为false即可。

只是一个想法。

进度事件完成后,您可以从该GIF图像中提取单帧(非动画),

 txImage.Image = Image.FormFile("non-animated-frame-from-gif.jpg"); 

您可以使用此网站从gif中提取框架: http : //gif-explode.com/

你可以使用pictureBox.Enabled = false; 如果你想停止GIF和pictureBox.Enabled = true; 当你想要它运行GIF时。