WinRT – 在控件中显示动画GIF

我需要在我的地铁应用程序中显示动画GIF,但我找不到允许它的任何控件。 (我尝试了Player框架中的ImageMediaElementMediaPlayer

是否有可能以某种方式显示动画GIF?

虽然我没有检查它是否有效,并且由于空域问题可能不适合你 – 你可以尝试在WebView控件中托管你的gif。 它可能比Norbert和Carl提出的更好的解决方案容易得多。

您可以使用.NET Framework中的BitmapDecoder类本机实现此目的。 我在我的博客上有一个例子,它展示了如何实现一个能够从ressource gif文件显示动画GIF的AnimationControl。 查看: http : //www.henrikbrinch.dk/Blog/2013/02/21/Windows-8—GIF-animations–the-RIGHT-way

我刚刚发布了一个库来播放动画GIF: XamlAnimatedGif 。 您只需要在标准Image控件上设置附加属性:

  

(xmlns映射是xmlns:gif="using:XamlAnimatedGif"

适用于WPF,Windows 8.1和Windows Phone 8.1

这不能原生,但你可以退房

http://imagetools.codeplex.com/

这就是你想做的一切。 你也可以检查一下

http://blogs.msdn.com/b/jstegman/archive/2009/09/08/silverlight-3-sample-updates.aspx

其中包含一个GIF解码器库

这里有一个很好的教程如何将gif插入Metro Style App:

http://advertboy.wordpress.com/2012/05/08/animated-gifs-in-xamlc/

但最简单的方法是使用这个项目:

http://imagetools.codeplex.com/

正如@Filip Skakun所说, WebView方法有效。 当然它是“黑客”,但所有这些库和解码在飞行中都很慢,动画闪烁(至少在Windows手机中)。 使用WebView,您可以托管具有透明背景的GIF动画。 要使用WebView gif渲染方法,请在项目中创建html页面:

     gif rendering         

CSS非常重要 – 因为它禁用了WebView的缩放/滚动/触摸移动(在大多数情况下这是不可取的)。 将GIF动画添加到同一个文件夹(html所在的位置)。 Xaml代码:

  

唯一的缺点是你在WebView占用的区域“丢失手势”(并且你不能使用WebViewBrush因为你会丢失动画)。