WPF 应用 - WPF 播放 GIF 的两种方式
1. 使用 Winform 的 PictureBox
1.1 引用 dll
- WindowsFormsIntegration.dll
 - System.Windows.Forms.dll
 - System.Drawing.dll
 
1.2 XMAl代码
<Window x:Class="TestGif.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:TestGif"
    xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
    xmlns:winForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>
    <wfi:WindowsFormsHost>
        <winForms:PictureBox x:Name="PictureOfGif"></winForms:PictureBox>
    </wfi:WindowsFormsHost>
</Grid>
</Window>
1.3 后台代码
public MainWindow()
{
    InitializeComponent();
    Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    this.PictureOfGif.Image = System.Drawing.Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "Resources/Images/TestImage/3.gif");
}
1.4 存在问题
如果窗口的 AllowsTransparency 为 true,会导致 PictureBox 出不来,
可以尝试在 wfi:WindowsFormsHost 外面包一层 Popup,并把 Popup 的 AllowsTransparency 设置为 false
2. 使用 WpfAnimatedGif
2.1 引用 dll
- WpfAnimatedGif.dll
可以通过 Nuget 安装或直接手动引用 dll 
2.2 Xaml 代码
<Window
    ...
    xmlns:gif="http://wpfanimatedgif.codeplex.com"
    ...
    >
    <Image gif:ImageBehavior.AnimatedSource="/Resources/Images/TestImage/3.gif" />
/>
												
											WPF 应用 - WPF 播放 GIF 的两种方式的更多相关文章
- Android播放音频的两种方式
		
一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐. 代码如下: private MediaPlayer mPlayer = null; mPlayer = Med ...
 - Cocos2d-x学习笔记(五岁以下儿童) 精灵两种方式播放动画
		
 这几天在看控件类,临时没有想好实际运用的方向.单纯的创建网上已经有非常多这方面的样例,我就不写了.接下来是学习精灵类.精灵类若是单独学习也是非常easy.于是我加了一些有关动画方面的知识点与精灵 ...
 - 【转】Unity3D研究院之两种方式播放游戏视频
		
http://www.xuanyusong.com/archives/1019 Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像 ...
 - 通过属性 Cesium的FBO主要支持两种方式
		
角色其实就是一类权限的分组,所以给用户分配角色其实也是在给用户分配权限.在oracle中有三个比较常用的角色.对于一般不是很严格的系统可以授予开发用户CONNECT.RESOURCE角色权限即可. 其 ...
 - 【Android】播放音频的几种方式介绍
		
接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...
 - Struts2实现ajax的两种方式
		
基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件. js部分调用方式是一样的: JS代码: function testAjax() { var ...
 - CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)
		
CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...
 - 两种方式实现java生成Excel
		
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
 - Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)
		
Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...
 
随机推荐
- 大数据开发-Spark-初识Spark-Graph && 快速入门
			
1.Spark Graph简介 GraphX 是 Spark 一个组件,专门用来表示图以及进行图的并行计算.GraphX 通过重新定义了图的抽象概念来拓展了 RDD: 定向多图,其属性附加到每个顶点和 ...
 - 弹性计算服务(Elastic Compute Service) / 云服务器 ECS
			
计费方式选择 多种可选择计算费用的方式,可以包年包月,按流量计费,按资源规格计费(本文第四点)等等 地域位置选择 地域:地域指的是 ECS 实例所在的物理位置 地域位置如何选择: 根据访问业务的用户比 ...
 - haproxy 2.2代理后端https服务
			
globalmaxconn 100000chroot /usr/local/haproxystats socket /var/lib/haproxy/haproxy.sock mode 600 lev ...
 - kubernetes实战-交付dubbo服务到k8s集群(一)准备工作
			
本次交付的服务架构图:因为zookeeper属于有状态服务,不建议将有状态服务,交付到k8s,如mysql,zk等. 首先部署zk集群:zk是java服务,需要依赖jdk,jdk请自行下载: 集群分布 ...
 - zzuli-2259 matrix
			
题目描述 在麦克雷的面前有N个数,以及一个R*C的矩阵.现在他的任务是从N个数中取出 R*C 个,并填入这个矩阵中.矩阵每一行的法值为本行最大值与最小值的差,而整个矩阵的法值为每一行的法值的最大值.现 ...
 - Leetcode(105)-从前序与中序遍历序列构造二叉树
			
根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15, ...
 - Ubuntu 18.04 + pip3 install virtualenvwrapper 报错 ERROR: virtualenvwrapper could not find virtualenv in your path
			
接上片... 问题 virtualenvwrapper装好后, 发现使用mkvirtualenv XX时, 又找不到virtualenv了... apt install python3-virtual ...
 - Tensorflow+InternalError: Blas GEMM launch failed
			
[参考1:]https://stackoverflow.com/questions/37337728/tensorflow-internalerror-blas-sgemm-launch-failed ...
 - 在线打开,浏览PDF文件的各种方式及各种pdf插件------(MS OneDrive/google drive & google doc/ github ?raw=true)
			
在线打开,浏览PDF文件的各种方式: 1 Google drive&doc (国内不好使,you know GFW=Great Firewall) 1. google drive: 直接分 ...
 - React Security Best Practices All In One
			
React Security Best Practices All In One Default XSS Protection with Data Binding Dangerous URLs Ren ...