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