5

メトロ アプリでアニメーション GIF を表示する必要がありますが、それを可能にするコントロールが見つかりません。(試してみましたImageMediaElementそしてMediaPlayerPlayer Frameworkから)

どうにかしてアニメーション GIF を表示することはできますか?

4

6 に答える 6

4

これは、.NET Framework の BitmapDecoder クラスを使用してネイティブに実現できます。私のブログには、ressource gif ファイルからアニメーション GIF を表示できる AnimationControl を実装する方法を示す例があります。チェックアウト: http://www.henrikbrinch.dk/Blog/2013/02/21/Windows-8---GIF-animations--the-RIGHT-way

于 2013-03-05T19:10:35.800 に答える
3

アニメーション GIF を再生するためのライブラリXamlAnimatedGifをリリースしました。Image標準コントロールに添付プロパティを設定するだけです。

<Image gif:AnimationBehavior.SourceUri="/Images/animated.gif" />

(xmlns マッピングはxmlns:gif="using:XamlAnimatedGif")

WPF、Windows 8.1、および Windows Phone 8.1 で動作します。

于 2014-10-09T23:31:45.553 に答える
3

機能するかどうかは確認していませんが、空域の問題により機能しない可能性があります-GIFをWebViewコントロールでホストしてみてください。Norbert と Carl によって提案されたより優れたソリューションよりもはるかに簡単かもしれません。

于 2013-01-07T07:22:09.777 に答える
1

これをネイティブに行うことはできませんが、チェックアウトすることはできます

http://imagetools.codeplex.com/

あなたが望むすべてを行います。また、これを確認することができます

http://blogs.msdn.com/b/jstegman/archive/2009/09/08/silverlight-3-sample-updates.aspx

GIFデコーダライブラリが含まれています

于 2013-01-06T15:00:18.667 に答える
1

ここでは、メトロ スタイル アプリに gif を挿入する方法についての優れたチュートリアルがあります。

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

しかし、最も簡単な方法は、このプロジェクトを使用することです:

http://imagetools.codeplex.com/

于 2013-01-06T15:56:48.113 に答える
0

@Filip Skakunが言ったように、WebViewメソッドは機能します。確かに「ハック」ですが、これらすべてのライブラリとその場でのデコードは遅く、アニメーションがちらつきます (少なくとも Windows Phone では)。WebView を使用すると、背景が透明なアニメーション GIF をホストできます。WebView gif レンダリング アプローチを使用するには、プロジェクトに HTML ページを作成します。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>gif rendering</title>
    <script type="text/javascript">
        function SetImageSource(image, source) {
            document.getElementById(image).src = source;
        };
    </script>

<style type="text/css">
    html, body
    {
        -ms-content-zooming:none;
        -ms-overflow-style: none;
        -ms-scroll-translation: none;
        -ms-touch-select: none;
        overflow: hidden;
        zoom: 100%;
    }
</style>
</head>
<body>
<img id="gifPlaceholder" src=""/>

<script>
    SetImageSource("gifPlaceholder", window.top.location.search.substring(1));
</script>
</body>
</html>

CSS は重要です。これは、WebView のズーム/スクロール/タッチ移動を無効にするためです (これはほとんどの場合望ましくありません)。アニメーション GIF を同じフォルダー (html がある場所) に追加します。Xaml コード:

<WebView Name="gifRendererWebView" 
         Source="ms-appx-web:///pathToHtmlInProject.html?gifName.gif"
         DefaultBackgroundColor="Transparent"/>

唯一の欠点は、占める領域で「ジェスチャーを失う」ことです(アニメーションが失われるため、WebView使用できません)。WebViewBrush

于 2014-10-19T10:58:08.017 に答える