メトロ アプリでアニメーション GIF を表示する必要がありますが、それを可能にするコントロールが見つかりません。(試してみましたImage
、MediaElement
そしてMediaPlayer
Player Frameworkから)
どうにかしてアニメーション GIF を表示することはできますか?
メトロ アプリでアニメーション GIF を表示する必要がありますが、それを可能にするコントロールが見つかりません。(試してみましたImage
、MediaElement
そしてMediaPlayer
Player Frameworkから)
どうにかしてアニメーション GIF を表示することはできますか?
これは、.NET Framework の BitmapDecoder クラスを使用してネイティブに実現できます。私のブログには、ressource gif ファイルからアニメーション GIF を表示できる AnimationControl を実装する方法を示す例があります。チェックアウト: http://www.henrikbrinch.dk/Blog/2013/02/21/Windows-8---GIF-animations--the-RIGHT-way
アニメーション GIF を再生するためのライブラリXamlAnimatedGifをリリースしました。Image
標準コントロールに添付プロパティを設定するだけです。
<Image gif:AnimationBehavior.SourceUri="/Images/animated.gif" />
(xmlns マッピングはxmlns:gif="using:XamlAnimatedGif"
)
WPF、Windows 8.1、および Windows Phone 8.1 で動作します。
機能するかどうかは確認していませんが、空域の問題により機能しない可能性があります-GIFをWebViewコントロールでホストしてみてください。Norbert と Carl によって提案されたより優れたソリューションよりもはるかに簡単かもしれません。
これをネイティブに行うことはできませんが、チェックアウトすることはできます
http://imagetools.codeplex.com/
あなたが望むすべてを行います。また、これを確認することができます
http://blogs.msdn.com/b/jstegman/archive/2009/09/08/silverlight-3-sample-updates.aspx
GIFデコーダライブラリが含まれています
ここでは、メトロ スタイル アプリに gif を挿入する方法についての優れたチュートリアルがあります。
http://advertboy.wordpress.com/2012/05/08/animated-gifs-in-xamlc/
しかし、最も簡単な方法は、このプロジェクトを使用することです:
@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