2012-12-04 11 views
5

私はWindows Phoneプラットフォームの初心者です。テキストボックスからイメージURLを読み込む簡単なアプリケーションを構築しようとしています。ダウンロードボタンをクリックすると、このイメージがダウンロードされます。電話機のメモリに保存し、Imageコントロールに表示します。Windows Phone 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; 
      } 
     } 

。どのようにそれを解決するには?誰かがこれを行うより良いアプローチを知っていますか?

もう1つの質問、e.Resultの性質は何ですか?それはダウンロードされたイメージのコンテンツですか?

おかげ

答えて

8

絵は、バイナリコンテンツではなく、文字列です。あなたは(代わりにDownloadStringAsyncの)WebClient.OpenReadAsyncを使用するか持っている、またはあなたのBitmapImageのソースとして直接URLを設定します。

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

が、私はウェブから画像を読み取り、自分の携帯電話のメモリに保存していないよかのように思えます。それとも、私がe.Resultから得たストリームを保存できるということですか? –

+0

"メモリ"があいまいです。あなたはRAMまたはストレージを指していますか?また、ストレージの場合でも、隔離されたストレージまたは画像ハブに画像を保存することができます。 –

関連する問題