示例#1
0
        private static void DragStart(UIElement source)
        {
            _isDragging = true;
            FrameworkElement sourceElement = _dragSource.SourceElement;

            sourceElement.PreviewDragEnter += _dragSource.PreviewDragEnterHandler;
            sourceElement.PreviewDragOver  += _dragSource.PreviewDragOverHandler;
            sourceElement.PreviewDragLeave += _dragSource.PreviewDragLeaveHandler;
            DragInitializeEventArgs args = new DragInitializeEventArgs
            {
                DragStartPosition = DragStartPosition
            };

            OnDragInitialize(source, args);
            if (args.Data != null)
            {
                DragDropEffects        effects           = System.Windows.DragDrop.DoDragDrop(source, args.Data, DragDropEffects.All);
                DropCompletedEventArgs dropCompletedArgs = new DropCompletedEventArgs(DragDrop.DropCompletedEvent, effects, args.Data);
                OnDropCompleted(source, dropCompletedArgs);
            }
            sourceElement.PreviewDragEnter -= _dragSource.PreviewDragEnterHandler;
            sourceElement.PreviewDragOver  -= _dragSource.PreviewDragOverHandler;
            sourceElement.PreviewDragLeave -= _dragSource.PreviewDragLeaveHandler;
            FinalizeDrag();
        }
示例#2
0
 private void AssociatedObject_DropCompleted(object sender, DropCompletedEventArgs e)
 {
     if (_dragVisual != null)
     {
         _dragVisual.Destroy();
         _dragVisual = null;
     }
 }
示例#3
0
 private static void OnDropCompleted(UIElement element, DropCompletedEventArgs e)
 {
     element.RaiseEvent(e);
     if (_dragSource != null)
     {
         _dragSource.DropCompletedHandler?.Invoke(element, e);
     }
     if (_dragContextInfo != null)
     {
         _dragContextInfo.DropCompletedHandler?.Invoke(element, e);
     }
 }
示例#4
0
 private void OnDropComplete(object sender, DropCompletedEventArgs e)
 {
 }
示例#5
0
 private void AssociatedObject_OnDropComplete(object sender, DropCompletedEventArgs e)
 {
     _isMouseDown = false;
 }