2013-01-06 35 views
5

मुझे अपने मेट्रो ऐप में एनिमेटेड जीआईएफ प्रदर्शित करने की ज़रूरत है, लेकिन मुझे कोई नियंत्रण नहीं मिल रहा है जो इसे अनुमति देता है। (मैंने प्लेयर फ्रेमवर्क से Image, MediaElement और MediaPlayer)WinRT - नियंत्रण में एनिमेटेड जीआईएफ प्रदर्शित करें

क्या एनिमेटेड जीआईएफ प्रदर्शित करना संभव है?

उत्तर

3

हालांकि मैंने यह जांच नहीं की है कि यह काम करता है और यह आपके लिए एयरस्पेस मुद्दों के कारण काम नहीं कर सकता है - आप वेबफ्यू नियंत्रण में अपने gif को होस्ट करने का प्रयास कर सकते हैं। नॉरबर्ट और कार्ल द्वारा प्रस्तावित अन्यथा बेहतर समाधानों की तुलना में यह बहुत आसान हो सकता है।

+0

यह काम करता है :) सबसे पहले मैं gif के आयामों का पता लगा रहा हूं और फिर स्क्रॉलिंग बार से बचने के लिए 20 के साथ जोड़े गए वेबव्यू ऊंचाई और चौड़ाई को सेट कर रहा हूं। फिर वेबफ्यूम का स्रोत gif पर सेट करें और यह काम करता है :) – Jesse

+0

WebViewBrush पर स्विच करने पर विचार करें। इससे आपको बेहतर प्रदर्शन –

1

यह मूल रूप से नहीं किया जा सकता, लेकिन आप

http://imagetools.codeplex.com/

जो सभी आप चाहते हैं करता है की जाँच कर सकते हैं। इसके अलावा, आप जाँच कर सकते हैं इस

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

जो एक GIF डिकोडर पुस्तकालय

1

यहाँ आप एक अच्छा ट्यूटोरियल मेट्रो शैली अनुप्रयोग में gif सम्मिलित करने के लिए कैसे है शामिल हैं:

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

लेकिन सबसे आसान तरीका इस परियोजना का उपयोग है:

http://imagetools.codeplex.com/

4

आप .NET Framework में BitmapDecoder क्लास का उपयोग करके इसे मूल रूप से प्राप्त कर सकते हैं। मेरे पास मेरे ब्लॉग पर एक उदाहरण है, जो दिखाता है कि एनीमेशन कंट्रोल को कैसे कार्यान्वित किया जाए जो एक रिसोर्स जीआईएफ फ़ाइल से एनिमेटेड जीआईएफ दिखाने में सक्षम है। चेक आउट: http://www.henrikbrinch.dk/Blog/2013/02/21/Windows-8---GIF-animations--the-RIGHT-way

+0

उत्कृष्ट होना चाहिए ... !!! –

3

मैंने एनिमेटेड जीआईएफ खेलने के लिए अभी एक लाइब्रेरी जारी की है: XamlAnimatedGif

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

(xmlns मानचित्रण xmlns:gif="using:XamlAnimatedGif" है)

WPF, विंडोज 8.1 और विंडोज फोन पर काम करता है में 8.1

0

@Filip के रूप में: तुम सिर्फ एक मानक Image नियंत्रण पर एक संलग्न गुण सेट करने की जरूरत है स्काकुन ने कहा WebView विधि काम करता है। निश्चित रूप से यह "हैक" है लेकिन इन सभी पुस्तकालयों और फ्लाई पर डिकोडिंग धीमी है, एनीमेशन झिलमिलाहट (कम से कम विंडोज फोन में)। वेबव्यू का उपयोग करके आप पारदर्शी पृष्ठभूमि के साथ एनिमेटेड gifs होस्ट करने की क्षमता देता है। 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> 

सीएसएस महत्वपूर्ण है - क्योंकि यह ज़ूम/स्क्रॉल/WebView का स्पर्श-चाल (जो ज्यादातर मामलों में वांछनीय नहीं है) अक्षम करता है। एनिमेटेड gifs को उसी फ़ोल्डर में जोड़ें (जहां HTML बैठता है)। Xaml कोड:

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

केवल दोष यह है कि आप इस क्षेत्र जो WebView पर कब्जा पर "इशारों खोना" (और आप WebViewBrush उपयोग नहीं कर सकते क्योंकि आप एनीमेशन खो देगा) है।