2013-03-26 69 views
6

我有一個事件,當我的應用程序使用互聯網時被調用。該事件改變了由7幀組成的動畫gif。我如何讓它只循環一次幀?C#如何停止不斷循環的動畫gif

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

這不工作'txImage.Image =(blip);'或者你需要將該代碼移動到某個'OnPaint事件' – MethodMan 2013-03-26 21:42:03

+2

禁用txtImage會阻止gif動畫。 – Flot2011 2013-03-26 21:42:31

回答

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 
} 
6

您可以提取單個幀GIF圖像(非 - 動畫)當進度事件完成後,

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

您可以使用該網站從GIF提取框架:http://gif-explode.com/

7

您可以將圖像/ gif封裝在Picturebox中,當您希望gif停止時,只需將Picturebox的Enabled屬性設置爲false即可。

只是一個想法。

2

如果您想要在運行GIF時停止GIF & pictureBox.Enabled = true;,則只需使用pictureBox.Enabled = false;即可。