WPF使用MediaElement显示gif图片

原创 2017年06月22日 17:12:04

使用MediaElement来显示gif图片,封装控件代码如下:
Xaml:

<UserControl x:Class="giftest01.GifImage"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:giftest01"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Border BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent},Path=BorderBrush}" 
            BorderThickness="{Binding RelativeSource={RelativeSource TemplatedParent},Path=BorderThickness}">
        <MediaElement x:Name="gifMedia"  MediaEnded="gifMedia_MediaEnded" UnloadedBehavior="Manual"  LoadedBehavior="Play" />
    </Border>
</UserControl>

cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace giftest01
{
    /// <summary>
    /// GifImage.xaml 的交互逻辑
    /// </summary>
    public partial class GifImage : UserControl
    {
        public GifImage()
        {
            InitializeComponent();
        }



        public Uri Source
        {
            get { return (Uri)GetValue(SourceProperty); }
            set { SetValue(SourceProperty, value); }
        }

        // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty SourceProperty =
            DependencyProperty.Register("Source", typeof(Uri), typeof(GifImage), new PropertyMetadata(null,(sender,p)=> {
                (sender as GifImage).UpdateSource();
            }));

        private void UpdateSource()
        {
            gifMedia.Source = Source;
            gifMedia.Play();
        }


        private void gifMedia_MediaEnded(object sender, RoutedEventArgs e)
        {
            gifMedia.Position = new TimeSpan(0, 0, 1);
            gifMedia.Play();

        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

浅谈WPF中对控件的位图特效(WPF Bitmap Effects)

--------------------------------------------------------------------------------引用或转载时请保留以下信息:大可山 [M...
  • johnsuna
  • johnsuna
  • 2007年08月22日 21:19
  • 4853

WPF播放GIF控件完整代码

WPF拥有很强的界面设计能力,可以很方便的做出非常漂亮的界面。但有个问题,WPF没有自己的播放GIF的控件。这让很多想在界面播放动态动画的人不得不使用视频来代替。WPF就真的不能播放GIF动图了吗?当...
  • Libby1984
  • Libby1984
  • 2016年09月14日 09:38
  • 2921

在Wpf中使用动态GIF图像的简单方法

Wpf本身的方法如果加载GIF实在是过于复杂,我们可以通过使用winform控件,减少复杂性方法一:利用winform控件 System.Windows.Forms. PictureBox pb ...
  • u012790747
  • u012790747
  • 2015年05月27日 21:26
  • 1768

WPF 如何显示gif

最近碰到了要显示表情的需求,而表情刚好是gif的图片。 于是用了Image试了下,发现不行,只会显示第一帧,然后上网查了下资料,大致有这么几种方法,都可以实现。 第一种: 使用Winfrom里面的pi...
  • wcc27857285
  • wcc27857285
  • 2016年11月01日 09:52
  • 2431

wpf加载gif动态图片

  • 2013年03月25日 16:22
  • 813KB
  • 下载

【C#】wpf添加gif动图支持

1.nuget里下载WpfAnimatedGif包,然后安装。 2.添加WpfAnimatedGif包的命名空间:xmlns:gif="http://wpfanimatedgif.codeplex.c...
  • catshitone
  • catshitone
  • 2017年06月08日 17:21
  • 1665

WPF 显示gif

  • 2014年02月28日 16:07
  • 711KB
  • 下载

WPF中GIF不动的问题解决方案。

WPF很强大,但是当WPF的image控件遇到gif时就只读了图片的第一帧,很好很强大! WPF不屑于gif的简单动画! 但是这对程序员来说不大爽啊!急得我眼泪都下来了! 幸好WPF里有Medi...
  • wangsui99
  • wangsui99
  • 2011年08月27日 20:40
  • 2455

WPF播放GIF

  • 2016年09月23日 10:46
  • 78KB
  • 下载

wpf显示gif动画

  • 2014年09月04日 12:43
  • 57KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF使用MediaElement显示gif图片
举报原因:
原因补充:

(最多只允许输入30个字)