为了在 WPF/C# 中显示动画 GIF,我在 Microsoft MSDN 中使用了这个代码示例:在 WPF 中显示 GIF 动画。
当我在无模式窗口 ( window.Show()
) 中使用它时,图像不会动画。为什么?
使用window.ShowDialog()
(模态窗口)它可以正常工作。
在 WPF Project Befor Start MainWindow 中,我显示一个窗口以无模式执行我的第一个任务,然后关闭它。(这些在 app.xaml.cs 启动事件中)
// 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();
}
}
我在 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);
我还添加到 firstTask 窗口和 MainWindow 以显示动画 gif。
另一个问题:在 firstTask.Close(); 之后 应用程序不显示 MainWindow。你知道为什么吗?