WPF显示Gif动画

Posted xinyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF显示Gif动画相关的知识,希望对你有一定的参考价值。

WPF的Image控件不能很好的支持.gif文件。解决办法有如下2种。

1使用MediaElement 

<MediaElement Source="file://D:anim.gif"/>

使用时,注意要使用  “file://”和gif文件的绝对路径。

2使用WinForm里面的PictureBox控件

Winform里面的PictureBox支持播放gif动画。我们需要的就是将winform控件停靠在wpf窗体中。这需要使用WindowsFormsHost。WindowsFormsHost存在于程序集WindowsFormsIntegration.dll的System.Windows.Forms.Integration命名空间

 

第一步,添加WindowsFormsIntegration.dll和System.Windows.Forms.dll引用。

然后添加下列命名空间到XAML。

<Window x:Class="WpfApplication2.Window1"
    xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
    xmlns:winForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

现在可以在wpf中放置PictureBox控件了

 <Grid>
        <wfi:WindowsFormsHost>
            <winForms:PictureBox x:Name="pictureBoxLoading">
            </winForms:PictureBox>
        </wfi:WindowsFormsHost>
    </Grid>

 

在code behind(Window1.xaml.cs),添加到Window_Loaded Event:

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            this.pictureBoxLoading.Image = System.Drawing.Image.FromFile("anim.gif"); ;
        }

注意:

  1. GIF文件路径正确
  2. 也可以通过 resource 文件导入.

参考资料:

Animated Gif in WPF using Windows Forms Control

 

以上是关于WPF显示Gif动画的主要内容,如果未能解决你的问题,请参考以下文章

C# WPF 将动画 gif 设置为背景

如何获得动画 gif 以在 WPF 中工作?

自己定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,&quot;掏粪男孩Gif&quot;顺便再提提onWindowFocusChanged)(代码片段

wpf 添加动态图片

WPF自定义控件与样式(12)-缩略图ThumbnailImage /gif动画图/图片列表

imageview 动画 gif 仅显示静态