private void LoadItemIllustation(Grid iv, LineViewModel line) { var bitMap = new BitmapImage(line.ImageUri); var imageContent = iv.FindName("ImageContent") as Image; imageContent.DataContext = line; var imagePlaceHolder = iv.FindName("ImagePlaceHolder") as Windows.UI.Xaml.Shapes.Path; var progressIndicator = iv.FindName("ProgressBar") as ProgressBar; bitMap.SetValue(BitmapLoadingIndicatorProperty, progressIndicator); bitMap.DownloadProgress += Image_DownloadProgress; imageContent.ImageOpened += imageContent_ImageOpened; imageContent.ImageFailed += ImageContent_Failed; imageContent.Source = bitMap; }
public async Task LoadIllustrationLine(LineViewModel line) { var bitMap = new BitmapImage(); if (line.ImageHeight > 1.0) { bitMap.DecodePixelHeight = line.ImageHeight; bitMap.DecodePixelWidth = line.ImageWidth; bitMap.DecodePixelType = DecodePixelType.Physical; } ImageContent.DataContext = line; bitMap.SetValue(BitmapLoadingIndicatorProperty, ProgressBar); bitMap.DownloadProgress += Image_DownloadProgress; CommentIndicator.Opacity = line.HasComments ? 1 : 0; ImageContent.ImageOpened += ImageContent_ImageOpened; ImageContent.ImageFailed += ImageContent_Failed; var download = line.DownloadImageAsync(); if (download.Status != AsyncStatus.Started) { download.Progress = (info, p) => { ProgressBar.Value = p; }; } var stream = await download; var setTask = bitMap.SetSourceAsync(stream); ImageContent.Source = bitMap; await setTask; }