我使用的装饰器来显示被拖动的元素的“鬼” ......如何在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
,直到我超过实际放置目标。
有没有人知道一个更好的方式来更新装饰者的位置?
链接现在已经死了。 – 2015-09-17 17:04:04