2015-01-26 59 views
0

我从像这样的网址加载BitmapImage;W 8.1加载BitmapImage

Uri uri = new Uri(item.url, UriKind.Absolute); 
ImageSource imgSource = new BitmapImage(uri); 
Image.Source = imgSource; 

代码工作正常,但有时需要到太多的时间来加载图片,有一种方法来检测图像加载,以使进度控制,在加载?

回答

1

说明和实施例从BitmapImage.DownloadProgress event页上MSDN:

对于其中一个的BitmapImage对象 的异步加载和解码足够长以被察觉到的用户的情况下,一个应用程序可以在处理 DownloadProgress来源并显示ProgressRing或ProgressBar以指示进度状态。这些可能会在UI区域中显示该图像最终显示在UI中,或者显示在UI的其他位置。使用DownloadProgressEventArgs.Progress修改ProgressBar 的用户界面。

// somewhere in initialization 
bitmapImage.DownloadProgress += new EventHandler<DownloadProgressEventArgs>(bi_DownloadProgress); 
bitmapImage.ImageOpened += new EventHandler<ExceptionRoutedEventArgs>(bi_ImageOpened); 
... 
//progressBar is an existing control defined in XAML or extracted from a XAML template 

void bi_DownloadProgress(object sender, DownloadProgressEventArgs e) 
{ 
    progressBar.Value = e.Progress; 
} 
void bi_ImageOpened(object sender, RoutedEventArgs e) 
{ 
    progressBar.Visibility = Visibility.Collapsed; 
}