Yes, the Groupbox's OnDrop() method is called, and if we set e.Handled = true, then the Diagram's OnDrop() does not get called.
So it seems that I need to modify my original post a bit and say that we don't know exactly where to call the DragDrop.DoDragDrop method.
We have created a new custom node class that inherits from DiagramNode, and in its OnDragOver(DiagramItem) override, we initiate the DragDrop.DoDragDrop, and this seems to work. But we'd like to not have to use a custom node, if possible.
The other issue we see is that we'd like to remove the node that was originally dragged from the diagram, since it is now going to be dropped onto the groupbox. When we do so, however, we are getting a NullReferenceException with the following call stack (truncated):
at MindFusion.Diagramming.Wpf.DiagramNode.x19a8a761a691d529(Rect xa6236fc5cd405c4e, Point x2f7096dac971d6ec, InteractionState xab29833053004740)
at MindFusion.Diagramming.Wpf.DiagramNode.x690a7db222c5c9f0(Rect xfcad4c0a9c5890c6, Rect x3bd62873fafa6252, Point x2f7096dac971d6ec, AdjustmentHandles xe72ccf98bea3cb87, InteractionState xab29833053004740)
at MindFusion.Diagramming.Wpf.DiagramNode.AllowModify(Point current, InteractionState ist)
at MindFusion.Diagramming.Wpf.InteractionState.ValidateAndSetCursor(Point point, Diagram diagram)
at MindFusion.Diagramming.Wpf.Behaviors.BehaviorBase.OnMouseMove(Point mousePosition)
at MindFusion.Diagramming.Wpf.Diagram.OnPreviewMouseMove(MouseEventArgs e)
at System.Windows.UIElement.OnPreviewMouseMoveThunk(Object sender, MouseEventArgs e)
at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.MouseDevice.Synchronize()
at System.Windows.Input.MouseDevice.ChangeMouseCapture(IInputElement mouseCapture, IMouseInputProvider providerCapture, CaptureMode captureMode, Int32 timestamp)
at System.Windows.Input.MouseDevice.PreNotifyInput(Object sender, NotifyInputEventArgs e)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.SafeNativeMethods.SafeNativeMethodsPrivate.IntReleaseCapture()
at MS.Win32.SafeNativeMethods.ReleaseCapture()
at System.Windows.Interop.HwndMouseInputProvider.System.Windows.Input.IMouseInputProvider.ReleaseMouseCapture()
at System.Windows.Input.MouseDevice.Capture(IInputElement element, CaptureMode captureMode)
at System.Windows.UIElement.ReleaseMouseCapture()
at MindFusion.Diagramming.Wpf.Diagram.x355258a28dc3da25(MouseButtonEventArgs xfbf34718e704c6bc, Point xb30c565aa19aece6)
at MindFusion.Diagramming.Wpf.Diagram.OnPreviewMouseUp(MouseButtonEventArgs e)
at System.Windows.UIElement.OnPreviewMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)