我有一個事件,當我的應用程序使用互聯網時被調用。該事件改變了由7幀組成的動畫gif。我如何讓它只循環一次幀?C#如何停止不斷循環的動畫gif
private void trafficSendingActive(object sender, trafficEventArgs e)
{
txImage.Image = Properties.Resources.blip;
}
我有一個事件,當我的應用程序使用互聯網時被調用。該事件改變了由7幀組成的動畫gif。我如何讓它只循環一次幀?C#如何停止不斷循環的動畫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
圖像(非 - 動畫)當進度事件完成後,
txImage.Image = Image.FormFile("non-animated-frame-from-gif.jpg");
您可以使用該網站從GIF提取框架:http://gif-explode.com/
您可以將圖像/ gif封裝在Picturebox中,當您希望gif停止時,只需將Picturebox的Enabled屬性設置爲false即可。
只是一個想法。
如果您想要在運行GIF時停止GIF & pictureBox.Enabled = true;
,則只需使用pictureBox.Enabled = false;
即可。
這不工作'txImage.Image =(blip);'或者你需要將該代碼移動到某個'OnPaint事件' – MethodMan 2013-03-26 21:42:03
禁用txtImage會阻止gif動畫。 – Flot2011 2013-03-26 21:42:31