Как обновить позицию перетаскивателя во время перетаскивания WPF?

Я использую рекламное объявление, чтобы показать «призрак» перетаскиваемого элемента ...

var adornerLayer = AdornerLayer.GetAdornerLayer(topLevelGrid);
dragAdorner = new DragAdorner(topLevelGrid, itemToDrag);
adornerLayer.Add(dragAdorner);
dragAdorner.UpdatePosition(e.GetPosition(topLevelGrid));

DragDrop.DoDragDrop(sourceItems, viewModel, DragDropEffects.Move);

adornerLayer.Remove(dragAdorner);
itemToDrag = null;

... но я не могу найти хороший способ обновить позицию рекламодателя во время перетаскивания. Самое близкое, что у меня есть, это установкаAllowDrop="true" на сетке верхнего уровня и давая ему обработчик DragOver ...

private void TopLevelGrid_OnDragOver(object sender, DragEventArgs e)
{
 dragAdorner.UpdatePosition(e.GetPosition(topLevelGrid));
}

Но это означает, что я не понимаюDragDropEffects обратная связь по курсору, т.е. она всегда показываетDragDropEffects.Move курсор вместоDragDropEffects.None пока я не над фактической целью падения.

Кто-нибудь знает лучший способ обновить позицию рекламодателя?

Ответы на вопрос(2)

Ваш ответ на вопрос