C#WPF gif黑色背景

时间:2015-10-03 20:36:02

标签: c# wpf animation gif transparent

我在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"/>

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

1 个答案:

答案 0 :(得分:7)

你可以考虑使用一个小的lib。 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来测试这个lib:

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

这里我们使用Image Control并将库提供的功能应用为附加属性。源代码可在Github页面上找到:

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

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

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

enter image description here

现在我们都忘记了曾经考虑过的动画GIF有多酷?