Esempio n. 1
0
        private void End()
        {
            _treeView.PreviewMouseMove -= OnMouseMove;

            _adornerLayer.Remove(_panelAdorner);
            _panelAdorner = null;

            if (_draggingContainer != null)
            {
                OnCompleted?.Invoke(_overDragArea, _overlapItem, _draggingContainer);
            }

            _overDragArea      = OverlapArea.Out;
            _overlapItem       = null;
            _draggingContainer = null;
        }
Esempio n. 2
0
        private void Start()
        {
            if (_panelAdorner != null || _draggingContainer == null)
            {
                return;
            }

            if (_adornerLayer == null)
            {
                _adornerLayer = AdornerLayer.GetAdornerLayer(_treeView);
            }

            if (_panelAdorner == null)
            {
                _panelAdorner = GetPanelAdorner(_treeView, _draggingContainer);
                _adornerLayer.Add(_panelAdorner);
            }

            DragDrop.AddQueryContinueDragHandler(_treeView, OnQueryContinueDrag);
            DragDrop.DoDragDrop(_treeView, _draggingContainer.DataContext, DragDropEffects.Move);
            DragDrop.RemoveQueryContinueDragHandler(_treeView, OnQueryContinueDrag);

            End();
        }