// Creates or updates the dragged Adorner.
 private void ShowDraggedAdorner(Point currentPosition)
 {
     if (_draggedAdorner == null)
     {
         var adornerLayer = AdornerLayer.GetAdornerLayer(_sourceItemsControl);
         _draggedAdorner = new DraggedAdorner(_draggedData, GetDragDropTemplate(_sourceItemsControl),
                                             _sourceItemContainer, adornerLayer);
     }
     _draggedAdorner.SetPosition(
         currentPosition.X - _initialMousePosition.X + _initialMouseOffset.X,
         currentPosition.Y - _initialMousePosition.Y + _initialMouseOffset.Y);
 }
 private void RemoveDraggedAdorner()
 {
     if (_draggedAdorner != null)
     {
         _draggedAdorner.Detach();
         _draggedAdorner = null;
     }
 }