/// <summary> /// Handler for PrintableStoryImageControl's GetImageSourceCompleted event. /// </summary> private void GetImageSourceCompleted(object sender, GetImageSourceCompletedEventArgs e) { if (e.UserState == _targetDocument) { OnGetImageSourceCompleted(sender, e); } }
/// <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); } } }
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; } }
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(); }