WPF显示GIF图的几种方式

使用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

相关文档:

https://nnish.com/tag/animated-gif-in-wpf/

https://social.msdn.microsoft.com/Forums/vstudio/en-US/93d50a97-0d8d-4b18-992e-cd3200693337/how-to-use-an-animated-gif?forum=wpf

时间: 2024-10-12 03:35:42

WPF显示GIF图的几种方式的相关文章

HTML中设置背景图的两种方式

HTML中设置背景图的两种方式 1.background    background:url(images/search.png) no-repeat top; 2.background-image    background-image:url(images/search.png):    background-repeat:no-repeat;

WPFの操作文件浏览框几种方式

原文:WPFの操作文件浏览框几种方式 方式1: 使用win32控件OpenFileDialog Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.DefaultExt = ".xml"; ofd.Filter = "xml file|*.xml"; if (ofd.ShowDialog() == true) { //此处做你想做的事 ...=ofd.FileN

Windows10-UWP中设备序列显示不同XAML的三种方式[3]

阅读目录: 概述 DeviceFamily-Type文件夹 DeviceFamily-Type扩展 InitializeComponent重载 结论 概述 Windows10-UWP(Universal Windows Platform)增加一个新特性设备序列(DeviceFamily)特定视图,它允许开发者为指定的设备序列定义指定的XAML显示,(Desktop.Mobile.tablet.Iot等). 如果你想为不同的设备序列显示较多不一样的UI时,它是非常有用的.当然,使用Relative

加载gif动态图的三种方式

准备:本地图片资源,GifView GifView代码: /** * 调用结束就开始播放动画,如果需要用户指定何时播放的话,只需要把timer的开始放到合适的位置.通过对CFDictonaryRaf 也就是gifProperties的改变,我们还可以控制动画是否循环播放以及循环多少次停止. 通过对index的改变也可以控制动画从某帧开始播放.同理,同时改变index和count的话,也可以控制从某帧到某帧的播放. 注意:- (void)stopGif;之后才可以退出这个类.否则timer不会关闭

WPF TextBlock 文本换行的2种方式

第1种: <TextBlock>      第一行<LineBreak/>      第二行  </TextBlock> 第2种 <TextBlock xml:space="preserve">   第一行   第二行 </TextBlock> 第2种加了xml:space="preserve",可以直接在文本上按space,tab键,不用标记,对于换行较多的情况比较方便

项目积累——关于时间显示和格式的几种方式

1.         Calendar类 初始化页面时间标签,在init方法中 Calendar cal=Calendar.getInstance(); int year=cal.get(Calendar.YEAR); fjscFormCxh.setKssj(year+"-01-01"); Calendar cal=Calendar.getInstance(); cal.get(Calendar.YEAR);//年 cal.get(Calendar.MONTH+1);//月 cal.g

无缝轮播图的一种方式原理

之前面试被问到这个问题,之前都是随便找大神插件,知道怎么去做,但是一直没实现过. 无缝轮播的原理 在滚动层前后分别插入最后一个元素和最前面一个元素,然后在动画滚到最后或者最前的时候,初始化滚动层的位置样式,速度很快,无法察觉,就如同无缝一般. html片段 <div class="wrap"> <ul> <li><img src="1.jpg"/></li> <li><img src=&q

PS切图的几种方式

方法一 点击图层右键-->导出为 导出需要的格式与大小 方法二 选择多个图层右键--->快速导出为PNG(导出的名字就是图层名字) 方法三

自己总结一下wpf image source 绑定的几种方式

绝对路径: 代码   BitmapImage image = new BitmapImage(new Uri("E:\\Project\\xxx.png", UriKind.Absolute));   imgName.source = image; xaml:   <Image Name="imgName" SourceE:\\Project\\xxx.png"> 相对路径: 1) :引用其他程序集的资源 <Image Name=&quo