Như @Filip Skakun cho biết phương thức WebView
hoạt động. Chắc chắn đó là "hack" nhưng tất cả các thư viện và giải mã trên bay chậm, hoạt hình flickers (ít nhất là trong cửa sổ điện thoại). Sử dụng WebView cung cấp cho bạn khả năng lưu trữ các hình động với nền trong suốt. Để sử dụng WebView gif phương pháp vẽ tạo trang html trong dự án của bạn:
<!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 là rất quan trọng - bởi vì nó vô hiệu hóa zoom/di chuyển/cảm ứng di chuyển của WebView (mà không phải là mong muốn trong hầu hết các trường hợp). Thêm gifs động vào cùng một thư mục (nơi html ngồi). mã XAML:
<WebView Name="gifRendererWebView"
Source="ms-appx-web:///pathToHtmlInProject.html?gifName.gif"
DefaultBackgroundColor="Transparent"/>
Hạn chế duy nhất là bạn "mất những cử chỉ" trên khu vực mà WebView
chiếm (và bạn không thể sử dụng WebViewBrush
bởi vì bạn sẽ mất hình ảnh động).
Điều đó làm việc :) Đầu tiên tôi phát hiện kích thước của gif và sau đó đặt chiều cao và chiều rộng của webviews thành 20 để tránh các thanh cuộn. Sau đó, chỉ cần đặt nguồn của webview thành gif và nó hoạt động :) – Jesse
Cân nhắc chuyển sang WebViewBrush. Điều đó sẽ cung cấp cho bạn hiệu suất tốt hơn –