3

在 Windows 8 的 Windows Store (Metro) 应用程序中是否有显示动画 gif 的控件?我将 C# 和 XAML 与数据绑定一起使用。

4

6 回答 6

2

Image 控件不支持动画 GIF。您将需要提取帧并在您自己的计时器上为它们设置动画。

您应该查看此链接,这可能会对您的问题有所帮助:

http://advertboy.wordpress.com/2012/05/08/animated-gifs-in-xamlc/

于 2012-10-06T03:29:32.267 回答
2

您不能在网格中显示动画 gif。但是,您可以在webview控制器中显示动画礼物。

于 2013-09-15T07:18:43.923 回答
1

请注意:您可以使用 BitmapDecoder 类来读取 GIF 帧,创建故事板并为其设置动画。

我的博客上有一个 Windows 8 用户控件的示例:http ://www.henrikbrinch.dk/Blog/2013/02/21/Windows-8---GIF-animations--the-RIGHT-way

于 2013-02-22T15:14:21.970 回答
1

我设法在我的 Windows 8 Metro 应用程序中显示 gif,只需将 gif 转换为 jpeg,然后运行无限循环。

代码如下:

公共异步无效更新图像(){

        await Task.Delay(300);

        var frame = this.Frame.CurrentSourcePageType.Name;

        if (frame != ("CURRENTFRAME")) return;
        if (count <= 4)
        {
            var img = (BitmapImage) Resources["bitmap" + count];
            imgTap.Source = img;
            UpdateLayout();
            count++;
            UpdateImage();
        }
        else
        {
            count = 1;
            UpdateImage();
        }
    }

所以基本上我将转换后的 jpeg 保存在我的 page.resources 中,然后将它们命名为 bitmap1,bitmap2 .. etc 。我正在检查当前帧是否是必须显示 gif 的帧,否则 gif 代码会一直在后台运行,这会浪费内存和 CPU。只需在任何 Loaded 方法上调用此方法,它应该可以正常运行。

于 2014-05-21T02:12:54.417 回答
0

这可能有点矫枉过正,但您可以尝试使用 WebView 来显示 GIF。然而,WebView 控件引入了它自己的一组令人头疼的问题,因此除非您愿意处理所说的头疼问题,否则我建议您避免使用它,除非您绝对必须使用它。

于 2012-10-06T08:29:35.987 回答
-1

如果我是对的,那么 Silverlight 不支持 GIF 并且 Metro Apps 基于 Silverlight 平台。因此,本机不包含对 GIF 图像的支持。但是,您可以使用 3rd 方控件,例如http://www.componentone.com/SuperProducts/ImageSilverlight/

于 2012-10-06T07:37:44.993 回答