/// <summary> /// Raises the attached GiveFeedback event on a element. /// </summary> /// <param name="element">The element to raise the event on.</param> /// <param name="args">Information about the event.</param> internal static void OnGiveFeedback(this DependencyObject element, SW.GiveFeedbackEventArgs args) { if (!args.Handled) { IAcceptDrop acceptDrop = element as IAcceptDrop; if (acceptDrop != null) { acceptDrop.OnGiveFeedback(args); } } ExtendedRoutedEventHandlerCollection <GiveFeedbackEventHandler, SW.GiveFeedbackEventArgs> handlers = element.GetGiveFeedbackHandlers(); if (handlers != null) { handlers.Raise(args); } }
/// <summary> /// Raises the GiveFeedback event on the drag source. /// </summary> /// <param name="args">Information about the GiveFeedback event. /// </param> private void OnDragSourceGiveFeedback(SW.DragEventArgs args) { SW.DragDropEffects effects = _allowedEffects; if (args.Handled) { effects = _allowedEffects & args.Effects; } else { effects = GetDragDropEffects(_allowedEffects); } _lastGiveFeedbackEventArgs = new SW.GiveFeedbackEventArgs() { Effects = effects, OriginalSource = _dragSource, }; _dragSource.RaiseRoutedEvent( _lastGiveFeedbackEventArgs, (accept, e) => accept.OnGiveFeedback(e)); }