/// <summary>
 /// Handler for PrintableStoryImageControl's GetImageSourceCompleted event.
 /// </summary>
 private void GetImageSourceCompleted(object sender, GetImageSourceCompletedEventArgs e)
 {
     if (e.UserState == _targetDocument)
     {
         OnGetImageSourceCompleted(sender, e);
     }
 }
示例#2
0
 /// <summary>
 /// Called when image download has been completed (successfully or not).
 /// </summary>
 /// <param name="sender">Source of the event</param>
 /// <param name="e">Provides detailed information about download completion.</param>
 private void OnGetImageSourceCompleted(object sender, GetImageSourceCompletedEventArgs e)
 {
     _isImageDownloadInProgress = false;
     if (Object.ReferenceEquals(e.UserState, this))
     {
         if (e.Error == null && !e.Cancelled)
         {
             SetValue(ImageSourcePropertyKey, e.ImageSource);
         }
         else
         {
             SetValue(ImageSourcePropertyKey, null);
         }
     }
 }
示例#3
0
        private void _OnGetImageSourceCompleted(object sender, GetImageSourceCompletedEventArgs e)
        {
            var senderImage = (FacebookImage)sender;

            if (!object.ReferenceEquals(senderImage, this.FacebookImage))
            {
                // Getting a stale callback for a different object.  Ignore it.
                return;
            }

            if (e.Error != null || e.Cancelled)
            {
                ImageSource     = null;
                IsImageUpdating = false;
                return;
            }

            ImageSource     = e.ImageSource;
            IsImageUpdating = false;
        }
        /// <summary>
        /// When a request for image source completes, remove the requesting ImageControl from the list of pending request states.
        /// If all pending requests have been completed, raise conversion completed event
        /// </summary>
        protected virtual void OnGetImageSourceCompleted(object sender, GetImageSourceCompletedEventArgs e)
        {
            if (sender is PrintableStoryImageControl)
            {
                PrintableStoryImageControl imageControl = (PrintableStoryImageControl)sender;
                if (_pendingImageRequestStates.Contains(imageControl))
                {
                    _pendingImageRequestStates.Remove(imageControl);
                }
                imageControl.GetImageSourceCompleted -= GetImageSourceCompleted;
            }

            if (_pendingImageRequestStates.Count == 0)
            {
                // _userState is the target document
                ConversionCompletedEventArgs args = new ConversionCompletedEventArgs(_requestedUserState, _targetDocument);
                _dispatcher.BeginInvoke(DispatcherPriority.Input, new DispatcherOperationCallback(RaiseConversionCompleted), args);
                _requestedUserState = null;
            }
        }
示例#5
0
        private void _OnGetImageSourceCompleted(object sender, GetImageSourceCompletedEventArgs e)
        {
            if (sender != FacebookImage)
            {
                return;
            }

            if (e.Error == null && !e.Cancelled)
            {
                this.ImageSource = e.ImageSource;
                if (SizeToContent != SizeToContent.Manual)
                {
                    // Not bothering to detect more granular values for SizeToContent.
                    SetValue(WidthProperty, e.NaturalSize.Value.Width);
                    SetValue(HeightProperty, e.NaturalSize.Value.Height);
                }
            }
            else
            {
                this.ImageSource = null;
            }
            this.InvalidateVisual();
        }