繁体   English   中英

使用Silverlight在WP7应用程序中显示GIF

[英]Display GIF in a WP7 application with Silverlight

我想在我的WP7应用程序中显示gif。 有没有办法实现这个目标?

我试过这个http://imagetools.codeplex.com/,但无法使它与WP7一起使用。

在此先感谢您的帮助

事实上,它正在运作,但它缺少一些文档。

经过一些麻烦,以下是如何使用它:

  • 参考ImageTools
  • 参考ImageTools.Controls
  • 参考ImageTools.IO.Gif

在xaml中添加命名空间:

xmlns:imagetools="clr-namespace:ImageTools.Controls;assembly=ImageTools.Controls" 

和资源:

<phone:PhoneApplicationPage.Resources>
    <imagetools:ImageConverter x:Key="ImageConverter" />
</phone:PhoneApplicationPage.Resources>

然后使用转换器的控件:

<imagetools:AnimatedImage Source="{Binding ImageSource, Converter={StaticResource ImageConverter}}" />

你的ImageSource应该是一个Uri,例如:

ImageSource = new Uri("http://mysite/my.gif", UriKind.Absolute);

别忘了添加解码:

ImageTools.IO.Decoders.AddDecoder<GifDecoder>();

查看Jamie Rodriguez的帖子,在WP7上使用GIF。 他使用CodePlex的ImageTools项目。

http://blogs.msdn.com/b/jaimer/archive/2010/11/23/working-with-gif-images-in-windows-phone.aspx

我努力让接受的答案奏效。 以下解决方案适用于我显示静态gif。

    public ImageResponse(string imageUrl)
    {
        InitializeComponent();

        ImageTools.IO.Decoders.AddDecoder<GifDecoder>();

        var imageResponse = new ExtendedImage();
        imageResponse.UriSource = new Uri(imageUrl);

        imageResponse.LoadingCompleted += this.ImageResponseLoadingCompleted;
    }

    private void ImageResponseLoadingCompleted(object sender, EventArgs e)
    {
        var imageResponse = (ExtendedImage)sender;

        Classes.Util.UiThread.Invoke(() =>
            {
                this.ImageResponse.Source = imageResponse.ToBitmap();
            });
    }

Classes.Util.UiThread是我用来调用UI线程的辅助类

this.ImageResponse是一个标准的图像控件

它是动画GIF吗? 如果没有,我会尝试将GIF转换为其他支持的文件格式,然后再在您的应用中使用它。

WP7 Silverlight支持JPG / PNG。

根据http://msdn.microsoft.com/en-us/library/ff462087(VS.92).aspx,Silverlight图像控件不支持GIF文件。

通过使用ImageTools,您可以将GIF文件转换为设备上的其他内容。 如果您使用的是您可以控制的gif文件(即您将它们捆绑在XAP中,或者它们来自您的Web服务器。)您应该使用这些文件的转换版本。

这意味着应用程序必须做得更少。
敲门效应是:
你必须编写更少的代码。
2.该应用程序将不得不做更少的工作,因此会稍微好一点。

当然,这不包括动画GIF。 对于这些,您需要使用不同的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM