C# WPF gif 黑色背景

C# WPF gif black background

我对 MediaElement 中的 Gif 动画有疑问。动画没问题,但透明背景是黑色的,而且我看到所有其他帧。我试了其他的Gif也是一样。

这是我的 MediaElement:

<MediaElement x:Name="myGif" 
              Height="100" HorizontalAlignment="Left" 
              Width="100" VerticalAlignment="Top" 
              Margin="100,100,0,0" 
              MediaEnded="myGif_MediaEnded"  
              UnloadedBehavior="Manual" 
              LoadedBehavior="Play" 
              Source="animation.gif" Stretch="Fill"/>

当我使用图像标签时 - 透明是可以的,但令人惊讶的是动画不起作用。

您可以考虑为此使用一个小库。 Thomas Levesque 创建了一个 WpfAnimatedGif,它可以作为 Nuget 包使用。只需在程序包管理器控制台中键入以下内容:

Install-Package WpfAnimatedGif 

PM> Install-Package WpfAnimatedGif
Installing 'WpfAnimatedGif 1.4.13'.
Successfully installed 'WpfAnimatedGif 1.4.13'.
Adding 'WpfAnimatedGif 1.4.13' to AnimatedGIF.
Successfully added 'WpfAnimatedGif 1.4.13' to AnimatedGIF.

然后让我们定义一个小的 GUI 来测试这个库:

<Window x:Class="AnimatedGIF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Hypnotize"
        xmlns:wpfanimated="http://wpfanimatedgif.codeplex.com"
        Height="350" Width="525">

    <Grid>    

        <Image wpfanimated:ImageBehavior.AnimatedSource="a_transparent_gif.gif"
               wpfanimated:ImageBehavior.RepeatBehavior="1"
               wpfanimated:ImageBehavior.AnimateInDesignMode="False"
               wpfanimated:ImageBehavior.AutoStart="True"              
               Height="300" />

    </Grid>
</Window>

这里我们使用图像控件并应用库作为附件提供的功能 属性。 Github 页面上提供了源代码:

https://github.com/thomaslevesque/WpfAnimatedGif/blob/master/WpfAnimatedGif/ImageBehavior.cs

我在这里提供了一个示例解决方案:

https://onedrive.live.com/redir?resid=8EF5059044F781FC!40935&authkey=!AA7kju6NnsGzpB4&ithint=file%2czip

现在我们都忘记了动画 GIF 曾经被认为是多么酷吗?