Как обновить позицию перетаскивателя во время перетаскивания 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
пока я не над фактической целью падения.
Кто-нибудь знает лучший способ обновить позицию рекламодателя?