【问题标题】:W 8.1 loading BitmapImageW 8.1 加载 BitmapImage
【发布时间】:2015-01-26 21:07:36
【问题描述】:
我正在从这样的 url 加载 BitmapImage;
Uri uri = new Uri(item.url, UriKind.Absolute);
ImageSource imgSource = new BitmapImage(uri);
Image.Source = imgSource;
代码运行良好,但有时加载图像需要很长时间,有一种方法可以检测图像是否已加载,以便在加载时启用进度控制?
【问题讨论】:
标签:
c#
xaml
windows-store-apps
windows-8.1
bitmapimage
【解决方案1】:
MSDN 上BitmapImage.DownloadProgress event 页面的备注和示例:
适用于异步加载和解码 BitmapImage 对象的情况
足够长以引起用户注意,应用程序可以处理
在源上下载进度并显示 ProgressRing 或
ProgressBar 来指示进度状态。这些可能会显示在
图像最终显示的 UI 区域或其他位置
用户界面。使用 DownloadProgressEventArgs.Progress 修改 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;
}