我是Windows手机平台的新手,我正在尝试构建一个简单的应用程序,从文本框中读取图像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的本质是什么?它是下载的图像内容作为字符串或路径或什么?
由于
答案 0 :(得分:8)
图片是二进制内容,而不是字符串。您要么使用WebClient.OpenReadAsync
(而不是DownloadStringAsync
),要么直接将您的网址设为BitmapImage
的来源:
var bi = new BitmapImage(new Uri("http://some-url-image-name.jpg"));