我在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标签时 - 透明是可以的,但令人惊讶的是动画不起作用。
答案 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
我在这里提供了一个示例解决方案:
现在我们都忘记了曾经考虑过的动画GIF有多酷?