提前致谢..
我正在从服务器下载一些图像到我的wp7应用程序。为此,我使用以下代码。
ObservableCollection<BitmapImage> biList;
int currentItem;
private void DownloadImages(string[] imageUriList)
{
biList = new ObservableCollection<BitmapImage>();
BitmapImage bi;
for (int i = 0; i < imageUriList.Length; i++)
{
bi = new BitmapImage();
biList.Add(bi);
bi.UriSource = new Uri(imageUriList[i], UriKind.Absolute);
biList[i] = bi;
}
}
之后,我将在Windows Phone应用程序的<Image />
控件中逐个显示这些图像。
<Image x:Name="imgImage" />
我正在使用以下代码显示图片
private void ShowImages()
{
imgImage.Source = biList[0];
currentItem = 1;
}
单击“下一个”或“上一个”按钮时,图像会发生变化。
private void btnNext_Click(object sender, RoutedEventArgs e)
{
if(currentItem < biList.Count)
{
imgImage.Source = biList[currentItem];
currentItem += 1;
}
}
private void btnPrevious_Click(object sender, RoutedEventArgs e)
{
if(currentItem > 1)
{
imgImage.Source = biList[currentItem-2];
currentItem -= 1;
}
}
当我试图显示这些图像时,会在一段时间后显示一些图像。
如何确保完整下载图像?
答案 0 :(得分:3)
您可以使用WebClient下载图像,一旦成功下载,您可以将代码添加到事件处理程序,如下所示:
private void GetImage()
{
WebClient client = new WebClient();
client.OpenReadAsync(new Uri("http://website.com/image.jpg"));
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
}
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
//Image has been downloaded
//Do something
}