我正在从这样的网址加载BitmapImage;
Uri uri = new Uri(item.url, UriKind.Absolute);
ImageSource imgSource = new BitmapImage(uri);
Image.Source = imgSource;
代码工作正常,但有时需要花费很多时间来加载图像,有一种方法可以检测图像是否已加载以在加载时启用进度控制?
答案 0 :(得分:1)
MSDN上BitmapImage.DownloadProgress event页面的备注和示例:
对于BitmapImage对象的异步加载和解码的情况 足够长的时间让用户注意到,应用程序可以处理 在源代码上下载进度并显示ProgressRing或 ProgressBar表示进度状态。这些可能会显示在 图像最终显示在其中或其他位置的UI区域 用户界面。使用DownloadProgressEventArgs.Progress修改UI的UI 进度。
// 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;
}