W 8.1加载BitmapImage

时间:2015-01-26 21:07:36

标签: c# xaml windows-store-apps windows-8.1 bitmapimage

我正在从这样的网址加载BitmapImage;

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

代码工作正常,但有时需要花费很多时间来加载图像,有一种方法可以检测图像是否已加载以在加载时启用进度控制?

1 个答案:

答案 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;
}