WPF/C#에서 애니메이션 GIF를 표시하려면 Microsoft MSDN에서이 코드 샘플을 사용하십시오. Show GIF animation in WPF.gif 이미지가 모덜리스 창에 애니메이션으로 적용되지 않는 이유는 무엇입니까?
모덜리스 창 (window.Show()
)에서 사용할 때 이미지가 움직이지 않습니다. 왜?
window.ShowDialog()
(모달 창)은 올바르게 작동합니다. WPF 프로젝트에서
// app.xaml.cs
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
FirstTask firstTask = new FirstTask();
firstTask.Show();
// do task
System.Threading.Thread.Sleep(5000);
firstTask.Close();
MainWindow mainWindow = new MainWindow();
mainWindow.ShowDialog();
}
}
나는 코드 끝 아래에 추가 (이들은 App.xaml.cs를 시작 이벤트에) AnimatedGIFControl 클래스의 AnimatedGIFControl_Loaded 함수를 사용하여 자동으로 gif 애니메이션을 시작합니다.
ImageAnimator.Animate (_bitmap, OnFrameChanged);
전체 AnimatedGIFControl_Loaded 코드
void AnimatedGIFControl_Loaded(object sender, RoutedEventArgs e)
{
// Get GIF image from Resources
if (gifanimate.Properties.Resources.ProgressIndicator != null)
{
_bitmap = gifanimate.Properties.Resources.ProgressIndicator;
Width = _bitmap.Width;
Height = _bitmap.Height;
_bitmapSource = GetBitmapSource();
Source = _bitmapSource;
ImageAnimator.Animate(_bitmap, OnFrameChanged);
}
}
ImageAnimator.Animate (_bitmap, OnFrameChanged);
또한 애니메이션 된 gif를 표시하기 위해 firstTask 창과 MainWindow에 추가합니다.
다른 문제 : firstTask.Close(); 응용 프로그램은 MainWindow를 표시하지 않습니다. 이유를 아셨습니까? 전화를 차단하고 실행을 계속하지 않습니다
그 예제를 다운로드하고 (시작 창으로) 2 개의 버튼으로 추가 양식을 추가했습니다. 하나는 mainWindow를 Show 메소드로 시작하고 다른 하나는 ShowDialog로 시작합니다. 둘 다 올바르게 실행됩니다. 문제를 좀 더 자세히 설명해 주시겠습니까? – JleruOHeP
Sleep() 호출을 잃어 버려야합니다. UI 스레드가 파열 된 동안에는 아무 것도 움직일 수 없습니다. 대신 타이머를 사용하십시오. –