5

我是 windows phone 平台的新手,我正在尝试构建一个简单的应用程序,它从文本框中读取图像 url,然后单击下载按钮将此图像下载到手机内存中,然后将其显示在图像控件中。

此代码是在用户单击下载按钮时编写的:

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 的本质是什么?是作为字符串下载的图像内容还是某物的路径或什么?

谢谢

4

1 回答 1

8

图片是二进制内容,而不是字符串。您必须使用WebClient.OpenReadAsync(而不是DownloadStringAsync),或直接将您的网址设置为您的来源BitmapImage

var bi = new BitmapImage(new Uri("http://some-url-image-name.jpg"));
于 2012-12-04T10:55:18.860 回答