/// <summary> /// Removes the <see cref="DragAdorner"/>. /// </summary> private void RemoveDragAdorner() { if (_dragAdorner != null) { var adornerLayer = AdornerLayer.GetAdornerLayer(_dragAdorner.AdornedElement); adornerLayer?.Remove(_dragAdorner); _dragAdorner = null; } }
// Creates or updates the DragAdorner. private void UpdateDragAdorner(Point mousePosition) { // Create new adorner if necessary. if (_dragAdorner == null && _dropCommandParameter.Data != null) { _dragAdorner = new DragAdorner(AssociatedObject) { Data = _dropCommandParameter.Data, DataTemplate = DragTemplate, }; var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject); adornerLayer?.Add(_dragAdorner); } // Update the position of the adorner. UpdateDragAdornerPosition(mousePosition); // Update data. // (The drop commands can change it to alter the visualization while dropping.) if (_dragAdorner != null) _dragAdorner.Data = _dropCommandParameter.Data; }