我已按照示例here了解如何将DownloadProgressEventHandler
用于BitmapImage
我的代码与C ++中的示例略有不同,但它看起来像这样......
BitmapImage^ im = ref new BitmapImage();
im->DownloadProgress += ref new DownloadProgressEventHandler(this, &Capture::ShowDownloadProgress);
im->ImageOpened += ref new RoutedEventHandler(this, &Capture::ImageDownloaded);
void ColonyCounter::Capture::ShowDownloadProgress(Platform::Object^ sender, Windows::UI::Xaml::Media::Imaging::DownloadProgressEventArgs^ e) {
imgLoadProgress->Value = e->Progress;
}
这似乎有效,但不顺利。进度值会跳跃。我提供了最能说明此问题的视频here的链接。
它似乎显示了多个块的进度。
我也在使用这个
im->ImageOpened += ref new RoutedEventHandler(this, &Capture::ImageDownloaded);
确定何时完成,只有在图像下载完成时才会触发一次。
修改
我正在使用平台10.0.14393.0,VS2015
我目前正在使用随机壁纸图片进行测试。我的源图片来自http://www.wallpaperup.com/wallpaper/download/21969 但是,当我使用https://www.nasa.gov/sites/default/files/thumbnails/image/hs-2015-02-a-hires_jpg.jpg进行测试时 它似乎没有出现,我得到一个很好的顺利下载进度条。