Comme @Filip Skakun a déclaré que la méthode WebView
fonctionne. Bien sûr, c'est "hack" mais toutes ces bibliothèques et décodage à la volée sont lents, l'animation scintille (au moins dans Windows Phone). L'utilisation de WebView vous permet d'héberger des GIF animés avec un arrière-plan transparent. Pour utiliser l'approche de rendu WebView gif créer la page html dans votre projet:
<!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 est important - car il désactive le zoom/défilement/tactile mouvement de WebView (ce qui est souhaitable dans la plupart des cas). Ajouter des gifs animés au même dossier (où se trouve html). Code XAML:
<WebView Name="gifRendererWebView"
Source="ms-appx-web:///pathToHtmlInProject.html?gifName.gif"
DefaultBackgroundColor="Transparent"/>
Le seul inconvénient est que vous « perdre gestes » sur la zone qui WebView
occupent (et vous ne pouvez pas utiliser WebViewBrush
parce que vous perdriez l'animation).
Cela a fonctionné :) d'abord Je détecte les dimensions du gif puis régler la hauteur et la largeur de webviews à celle ajoutée avec 20 pour éviter les barres de défilement. Ensuite, il suffit de définir la source de la webview sur le gif et cela fonctionne :) – Jesse
Envisager de passer à WebViewBrush. Cela devrait vous donner de meilleures performances –