我的wp7应用程序中有一个页面需要在其中显示图像。我有一个url数组。它可能包含0到500个网址。如果阵列中没有url,则会显示“No Images”消息。如果url数组中只有一个url,则应显示该图像。如果它包含多个url,那么我需要显示与第一个url对应的图像和页面中的下一个按钮。如果我按下下一个按钮,将加载第二个图像,然后应显示后退按钮。 图像可能具有更大的尺寸,然后应该启用滚动。
我该怎么做?
当我试图在WebBrowser中加载图像时,我收到一条错误“你不能调用WebBrowser方法,直到它在可视树中。”
答案 0 :(得分:3)
试试这个,
public void DownloadImages()
{
HttpWebRequest reqest = (HttpWebRequest)WebRequest.Create(your_url);
reqest.BeginGetResponse(DownloadImageCallback, reqest1);
}
void DownloadImageCallback(IAsyncResult result)
{
HttpWebRequest req = (HttpWebRequest)result.AsyncState;
HttpWebResponse responce = (HttpWebResponse)req1.EndGetResponse(result);
Stream s = responce.GetResponseStream();
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
bmp = new BitmapImage();
bmp.SetSource(s);
});
}
bmp(bitmapimage)指定为imagesource。 通过这种方式,您可以从服务器下载图像。
答案 1 :(得分:2)
使用WebClient而不是HttpWebRequest要容易得多。
public void LoadImage(string uri)
{
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.OpenReadAsync(new Uri(uri));
}
private void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
BitmapImage bi = new BitmapImage();
bi.SetSource(e.Result); // Here, you got your image
}