我有拖拽实现的WPF应用程序......
每当我在Grid
上拖动树项目时,它都会被DragDrop
的{{1}}事件处理,但每次被解雇两次可能是什么原因?
以下是在Grid
上实施拖放的代码:
TreeView
答案 0 :(得分:3)
我遇到了几乎相同的问题:我在MouseMove上启动了拖动事件,并在某些TreeViewItem上有一个drop事件。在首次触发drop事件之后,它会再次触发,但目标将是一个不同的元素(在我的情况下,是我的目标的父元素)。
要解决这个问题,我必须在Drop事件中设置e.Handled = true
。
答案 1 :(得分:-1)
我认为这对Drag& amp;降
darg和drop的好方法解释为
将MouseMove与MouseLeftButtonDown结合起来检测拖动
找到要拖动的数据,并创建一个包含格式,数据和允许的效果的DataObject。
通过调用DoDragDrop()
启动拖动在要允许删除的元素上将AllowDrop属性设置为True。
将处理程序注册到DragEnter事件以检测拖放位置上的拖动。通过在事件args上调用GetDataPresent()来检查格式和数据。如果可以删除数据,请在事件参数上设置Effect属性以显示相应的鼠标光标。
当用户释放鼠标按钮时,将调用DragDrop事件。通过在事件args中提供的Data对象上调用GetData()方法来获取数据。
您可以找到完整的文章here