使用MediaElement
这种方式有一个局限就是图片路径必须是绝对路径
<MediaElement Source="file://C:\129.gif" />
并且你还需要设置让他循环播放
<MediaElement Source="file://C:\129.gif" MediaEnded="MediaElement_MediaEnded"/>
private void MediaElement_MediaEnded(object sender, RoutedEventArgs e) { ((MediaElement)sender).Position=((MediaElement)sender).Position.Add(TimeSpan.FromMilliseconds(1)); }
通过winform中的PictureBox控件
这种方式可以指定相对路径;首先,你需要在wpf程序中添加window的程序集引用:System.Drawing.dll、System.Windows.Forms.dll和WindowsFormsIntegration.dll
引用类型后,你就可以在XAML代码中使用winform中的PictureBox了
xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration" xmlns:winForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
<wfi:WindowsFormsHost> <winForms:PictureBox x:Name="PictureOfGif"></winForms:PictureBox> </wfi:WindowsFormsHost>
在程序load事件中绑定图片
void MainWindow_Loaded(object sender, RoutedEventArgs e) { this.PictureOfGif.Image = System.Drawing.Image.FromFile("images/129.gif"); }
WpfAnimatedGif
可以通过控制台或者Nuget安装
Install-Package WpfAnimatedGif
xmlns:gif="http://wpfanimatedgif.codeplex.com"
<Image gif:ImageBehavior.AnimatedSource="Images/animated.gif" />
GitHub地址:https://github.com/XamlAnimatedGif/WpfAnimatedGif