Come @Filip Skakun ha detto che il metodo WebView
funziona. Certo è "hack" ma tutte queste librerie e decodifiche al volo sono lente, sfarfallio delle animazioni (almeno in windows phone). L'uso di WebView ti dà la possibilità di ospitare gif animate con sfondo trasparente. Per utilizzare WebView gif approccio resa generazione pagina html nel progetto:
<!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 è importante - perché disabilita zoom/scorrimento/touch-move di WebView (che non è auspicabile nella maggior parte dei casi). Aggiungi gif animate alla stessa cartella (dove si trova html). XAML:
<WebView Name="gifRendererWebView"
Source="ms-appx-web:///pathToHtmlInProject.html?gifName.gif"
DefaultBackgroundColor="Transparent"/>
L'unico inconveniente è che si "perde gesti" sulla zona che WebView
occupano (e non è possibile utilizzare WebViewBrush
perché si perderebbe animazione).
Che ha funzionato :) Prima di tutto sto rilevando le dimensioni della gif e quindi impostando l'altezza e la larghezza delle visualizzazioni web con quella aggiunta con 20 per evitare le barre di scorrimento. Quindi imposta la sorgente della visualizzazione web su gif e funziona :) – Jesse
Valuta l'opportunità di passare a WebViewBrush. Questo dovrebbe darti prestazioni migliori –