private void DragSource_PreviewMouseMove(object sender, MouseEventArgs e) { logger.Trace("Entered DragSource_PreviewMouseMove()"); if (DraggedData == null || !DynamicFormUtilities.IsMovementBigEnough(InitialMousePosition, e.GetPosition(TopWindow))) { return; } var data = new DataObject(Format.Name, DraggedData); var previousAllowDrop = TopWindow.AllowDrop; TopWindow.AllowDrop = true; TopWindow.DragEnter += TopWindow_DragEnter; TopWindow.DragOver += TopWindow_DragOver; TopWindow.DragLeave += TopWindow_DragLeave; var effects = DragDrop.DoDragDrop(sender as DependencyObject, data, DragDropEffects.Move); TopWindow.AllowDrop = previousAllowDrop; TopWindow.DragEnter -= TopWindow_DragEnter; TopWindow.DragOver -= TopWindow_DragOver; TopWindow.DragLeave -= TopWindow_DragLeave; DraggedData = null; }