2013-03-26 2 views
6

내 앱에서 인터넷을 사용할 때 호출되는 이벤트가 있습니다. 이 이벤트는 7 프레임으로 구성된 애니메이션 GIF를 변경합니다. 프레임을 한 번만 반복하면 어떻게됩니까?C# 애니메이션 GIF가 반복적으로 반복되는 것을 멈추는 방법

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

이 작업은'txImage.Image = (blip);하지 않거나 해당 코드를 일부 OnPaint 이벤트로 옮겨야 할 수도 있습니다. – MethodMan

+2

txtImage를 비활성화하면 gif가 애니메이션되지 않습니다. – Flot2011

답변

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 이미지 - progress 이벤트가 완료되면 당신은 GIF에서 프레임을 추출하기 위해이 웹 사이트를 사용할 수 있습니다

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

, (비 애니메이션) : http://gif-explode.com/

7

당신은 항상 Picturebox 안에 image/gif를 캡슐화 할 수 있습니다. gif를 중지하려면 Picturebox의 Enabled 속성을 false로 설정하면됩니다.

그냥 생각해보십시오.

2

GIF를 실행하려는 경우 GIF & pictureBox.Enabled = true;을 중지하려면 pictureBox.Enabled = false;을 사용하면됩니다.

관련 문제