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

sta*_*low 6 c# animated-gif winforms

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

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

小智 7

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

只是一个想法.


PaR*_*RaJ 6

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

txImage.Image = Image.FormFile("non-animated-frame-from-gif.jpg");
Run Code Online (Sandbox Code Playgroud)

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


sa_*_*213 6

您可以使用它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
}
Run Code Online (Sandbox Code Playgroud)


小智 5

pictureBox.Enabled = false;如果您想停止 GIF 以及pictureBox.Enabled = true;何时运行 GIF,您可以使用它。