示例#1
0
        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;
        }