我一直在尝试在我的应用上显示动画gif(c#+ xaml)。 Here由于WP8支持gif格式,为什么我的gif不可见。知道如何进行animated gif
运行吗?
答案 0 :(得分:2)
大多数应用使用ImageTools库。这是一个记忆力,但它的工作原理。或者,您可以尝试在应用程序中嵌入WebBrowser控件并加载动画gif。
应用程序Baconography是迄今为止我唯一使用自定义GIF渲染器的WP8应用程序。该应用程序是开源的,但我不知道他们的许可证是否允许您在自己的应用程序中重用代码。 https://github.com/Synergex/Baconography
答案 1 :(得分:1)
另一个选项就像您不想添加依赖项一样,是修改图像,使每个帧按宽度方式顺序存在,并且一次只显示每个帧。所以在xaml中:
<Canvas Grid.Column="0" Width="32" Height="32">
<Image x:Name="Image" Source="/Resources/animation.gif">
<Image.Clip>
<RectangleGeometry Rect="0 0 32 32"></RectangleGeometry>
</Image.Clip>
</Image>
</Canvas>
在计时器中的C#中只显示一个特定的帧:
image.Clip = new RectangleGeometry {
Rect =
new Rect(
frame * width,
0,
width,
height)
};
Canvas.SetLeft(image, -1 * width * frame)
其中width是每个帧的宽度,height是图像的高度,frame是动画的当前位置。宽度和高度应映射xaml中的剪辑。
答案 2 :(得分:1)
我刚刚发布了一个新的库,可以在WPF,Windows 8.1和Windows Phone 8.1上显示动画GIF:https://github.com/XamlAnimatedGif/XamlAnimatedGif
与ImageTools不同,它的内存效率非常高,因为它只会动态解码当前帧并丢弃前一帧(但它可能会占用更多的CPU)