2012-12-04 12 views
5

मैं विंडोज फोन प्लेटफ़ॉर्म के लिए नौसिखिया हूं, और मैं एक साधारण एप्लिकेशन बनाने की कोशिश कर रहा हूं जो टेक्स्टबॉक्स से छवि यूआरएल पढ़ता है, और डाउनलोड बटन पर इस छवि को डाउनलोड करने पर क्लिक करें फोन मेमोरी और फिर इसे एक छवि नियंत्रण में प्रदर्शित करता है।विंडोज फोन 7 डाउनलोड छवि और इसे प्रदर्शित करें

जब उपयोगकर्ता डाउनलोड बटन पर क्लिक करता है इस कोड लिखा है:

string url = "http://some-url-image-name.jpg"; 
WebClient client = new WebClient(); 
client.DownloadStringCompleted += DownloadCompleted; 
client.DownloadStringAsync(new Uri(url)); 

और इस DownloadStringCompleted ईवेंट हैंडलर है:

private void DownloadCompleted(object sender, DownloadStringCompletedEventArgs e) 
     { 
      if (e.Error != null) 
       return; 
      string result = e.Result; 
      using (var stream = new MemoryStream(Encoding.Unicode.GetBytes(e.Result))) 
      { 
       var bi = new BitmapImage(); 
       bi.SetSource(stream); 
       image.Source = bi; 
      } 
     } 

यह एक 'अनिर्दिष्ट त्रुटि' अपवाद दे रहा है। इसे कैसे हल करें? या क्या कोई ऐसा करने के लिए बेहतर दृष्टिकोण जानता है?

एक और सवाल, ई। रीसेट की प्रकृति क्या है? क्या यह डाउनलोड की गई छवि सामग्री को स्ट्रिंग या कुछ पथ या पथ के रूप में है?

धन्यवाद

उत्तर

8

एक तस्वीर द्विआधारी सामग्री, नहीं एक श्रृंखला है। आप WebClient.OpenReadAsync (DownloadStringAsync के बजाय) का उपयोग करने के लिए या तो है, या अपने BitmapImage के लिए सीधे स्रोत के रूप में अपने URL सेट करें:

var bi = new BitmapImage(new Uri("http://some-url-image-name.jpg")); 
+0

लेकिन यह है कि जैसे मैं वेब से छवि और पढ़ रहा हूँ नहीं मेरे फोन की स्मृति में सहेजकर लगता है । या क्या आपका मतलब है कि मैं ई। रीसेट से प्राप्त धारा को बचा सकता हूं? –

+0

"मेमोरी" संदिग्ध है। क्या आप राम या भंडारण का जिक्र कर रहे हैं? और यहां तक ​​कि भंडारण के लिए, आप चित्र को अलग भंडारण या चित्र केंद्र में सहेज सकते हैं। –

संबंधित मुद्दे