6

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

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

4 回答 4

7

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

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

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

于 2013-03-26T21:45:54.967 回答
7

您总是可以将图像/gif 封装在 Picturebox 中,当您希望 gif 停止时,只需将 Picturebox 的 Enabled 属性设置为 false。

只是一个想法。

于 2013-06-09T11:48:02.743 回答
5

您可以使用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
}
于 2013-03-26T22:01:26.330 回答
5

pictureBox.Enabled = false;如果你想停止 GIFpictureBox.Enabled = true;并且当你希望它运行 GIF 时,你可以使用。

于 2016-06-12T13:11:27.053 回答