コード例 #1
0
		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;
		}
コード例 #2
0
		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;
		}