3

Windows 8のWindowsストア(Metro)アプリでアニメーションGIFを表示するためのコントロールはありますか?データバインディングでC#とXAMLを使用しています。

4

6 に答える 6

2

画像コントロールはアニメーション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フレームを読み取り、それらをアニメーション化したストーリーボードを作成できます。

ブログにWindows8ユーザーコントロールの例があります:http ://www.henrikbrinch.dk/Blog/2013/02/21/Windows-8 --- GIF-animations--the-RIGHT-way

于 2013-02-22T15:14:21.970 に答える
1

gifをjpegに変換し、無限ループを実行するだけで、Windows8メトロアプリにgifを表示することができました。

コードは次のとおりです。

public async void UpdateImage(){

        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などの名前を付けます。現在のフレームがgifを表示する必要のあるフレームであるかどうかを確認しています。そうでない場合、gifコードがバックグラウンドで実行され、メモリとCPUの浪費になります。Loadedメソッドのいずれかでこのメソッドを呼び出すだけで、正常に実行されます。

于 2014-05-21T02:12:54.417 に答える
0

これはおそらくやり過ぎですが、WebViewを使用してGIFを表示してみることができます。WebViewコントロールには独自の頭痛の種がありますが、そのような頭痛に対処する意思がない限り、絶対に使用する必要がない限り、それを避けることをお勧めします。

于 2012-10-06T08:29:35.987 に答える
-1

私が正しければ、SilverlightはGIFをサポートしておらず、MetroAppsはSilverlightプラットフォームに基づいています。したがって、GIF画像のサポートをネイティブに含めることはできません。ただし、 http://www.componentone.com/SuperProducts/ImageSilverlight/などのサードパーティのコントロールを使用できます。

于 2012-10-06T07:37:44.993 に答える