문제

애니메이션 GIF가있는 .NET WinForms 응용 프로그램이 있습니다. PictureBox. a BackgroundWorker 다른 스레드에서 일부 처리를 수행합니다. 설정하여 이미지를로드합니다 Image 재산과 자체적으로 애니메이션.

응용 프로그램을 최소화하고 복원 할 때까지 모두 괜찮습니다. 이 시점에서 이미지는 애니메이션을 중지하고 마지막으로 켜진 프레임 만 표시합니다.

주목하십시오 :

  • 백그라운드 스레드는 여전히 잘 작동하며 응용 프로그램의 "비즈니스"중 어느 것도 영향을받지 않습니다.
  • 이후에 분열 된 애니메이션 GIF는 제대로 작동합니다 (응용 프로그램이 다시 최소화되지 않는 한).

이 문제의 원인이 무엇인지 아는 사람이 있습니까? 해결 방법이 있습니까?

도움이 되었습니까?

해결책

분명히 Window가 가려 질 때마다 PictureBox는 분명히 애니메이션을 중지합니다. 창이 더 이상 가려지지 않으면 그림 박스를 무효화하고 다시 칠해야하지만 Vista에서는 무효화 이벤트가 자동으로 발생하지 않습니다.

하나의 해결 방법은 500ms마다 picturebox.invalidate ()를 호출하는 형태에 타이머를 추가하는 것입니다. 이것은 애니메이션이 멈추지 않도록합니다.

보다 이 MSDN 스레드 자세한 내용은.

다른 팁

원인이 무엇인지 모르겠지만 최소화 된시기와 복원 할 때마다 REDISPLAING을 감지하면 어떻게해야합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top