// aka Phase 2 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; //ResetPhase0(line); //CommentIndicator.Opacity = line.HasComments ? 1 : 0; //ProgressBar.Visibility = Visibility.Visible; //ImagePlaceHolder.Visibility = Visibility.Visible; //ProgressBar.Value = 0; try { var download = line.DownloadImageAsync(); download.Progress = async(info, p) => { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => SetDownloadProgress(p)); }; var stream = await download; var setTask = bitMap.SetSourceAsync(stream); ImageContent.Source = bitMap; await setTask; } catch (Exception excp) { ImageContent_Failed(ImageContent, null); } }
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; }