我一直在尝试在我的应用程序(c# + xaml)上显示动画 gif。鉴于 WP8 支持 gif 格式,那么为什么我的 gif 不可见。知道如何animated gif
跑步吗?
问问题
2370 次
3 回答
2
大多数应用程序使用ImageTools库。这是一个记忆猪,但它的工作原理。或者,您可以尝试在您的应用程序中嵌入 WebBrowser 控件并让它加载动画 gif。
Baconography 应用程序是迄今为止我听说的唯一使用自定义 GIF 渲染器的 WP8 应用程序。该应用程序是开源的,但我不知道他们的许可证是否允许您在自己的应用程序中重用代码。https://github.com/Synergex/Baconography
于 2013-09-30T06:00:02.943 回答
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 中的剪辑。
于 2014-01-08T06:20:30.277 回答
1
我刚刚发布了一个新库,用于在 WPF、Windows 8.1 和 Windows Phone 8.1 上显示动画 GIF:https ://github.com/XamlAnimatedGif/XamlAnimatedGif
与 ImageTools 不同,它的内存效率非常高,因为它只动态解码当前帧并丢弃前一帧(不过它可能更占用 CPU 资源)
于 2014-10-09T23:52:13.290 回答