Windows Phone 7下载图像并显示

5
我是一个对windows phone平台不太熟悉的新手,现在正尝试构建一个简单的应用程序:从文本框中读取图像的URL,在点击下载按钮后将此图像下载到手机内存中,并在Image控件中显示它。
以下代码是用户点击下载按钮时编写的:
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;
            }
        }

出现“未指定错误”异常,该怎么解决?或者有没有更好的方法来解决这个问题?

另一个问题,e.Result的本质是什么?它是下载的图像内容作为字符串还是某个路径或其他什么东西?

谢谢。

1个回答

8
一张图片是二进制内容,而不是字符串。你需要使用WebClient.OpenReadAsync(而不是DownloadStringAsync)或者直接将你的url设置为BitmapImage的源。
var bi = new BitmapImage(new Uri("http://some-url-image-name.jpg"));

但这似乎是从网络上读取图像,而不是将其保存到手机存储器中。你是指我可以保存从 e.Result 得到的数据流吗? - NadaNK
"Memory" 是一个含糊的词汇。您是指 RAM 还是存储空间?即使是对于存储空间,您可以将图片保存到隔离存储或图片中心。 - Kevin Gosse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接