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"); ; }
注意:
- GIF文件路径正确
- 也可以通过 resource 文件导入.
参考资料:
Animated Gif in WPF using Windows Forms Control
以上是关于WPF显示Gif动画的主要内容,如果未能解决你的问题,请参考以下文章
自己定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,"掏粪男孩Gif"顺便再提提onWindowFocusChanged)(代码片段