Gif in Windows phone 7

今天突然想到,在以往WM5/WM6系列,在系統上是無法正常的顯示Gif圖形的,那Windows Phone 7呢?簡單測試了一下...

今天突然想到,在以往WM5/WM6系列,在系統上是無法正常的顯示Gif圖形的,那Windows Phone 7呢?簡單測試了一下,利用下面的XAML去測試

殘念,還是無法顯示;後來搜尋了一下,幸好有好心的達人有做出相關的解決方案,在論壇中的這篇有提到一個方式,是使用CodePlex上的這個解決方案,.NET Image Tools,就來測試一下吧,首先把組件下載回來之後,必須要加入相關的參考,我這邊只有用到Gif檔案,所以加入的參考是這些

之後再畫面上簡單的只放了一個按鈕,相關程式碼會像是下面這樣

using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using System.IO.IsolatedStorage;
using System.Windows.Media.Imaging;
using ImageTools.IO.Gif;
using ImageTools.Controls;

namespace RunDemo
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            ImageTools.IO.Decoders.AddDecoder();
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            ImageTools.Image img = new ImageTools.Image();
            img.UriSource = new Uri("http://bauann.myweb.hinet.net/Animategif.gif", UriKind.Absolute);
            AnimatedImage myImg = new AnimatedImage();
            myImg.Stretch = System.Windows.Media.Stretch.Uniform;
            myImg.Source = img;
            myImg.VerticalAlignment = VerticalAlignment.Bottom;
            myImg.Margin = new Thickness(0, 2, 2, 2);
            ContentGrid.Children.Add(myImg);
        }

    }
}
接下來就來執行看看效果了,至於模特兒的重責大任就交由洋蔥頭來擔綱了,出來之後的結果會像下圖,實際上也是會有動畫的喔

真是太酷了,不過目前測試這個組件只能讀取遠端的檔案,直接部屬過去的檔案(在隔離儲存區內)是沒辦法讀出來用的,可能是原作者主要標的是針對Silverlight,但不是針對Phone的平台,不過可以下載原始碼回來K看看,我想應該是辦的到的才對:)