在WPF中拖放

时间:2009-09-01 09:28:31

标签: wpf drag-and-drop mouseevent

我有拖拽实现的WPF应用程序...... 每当我在Grid上拖动树项目时,它都会被DragDrop的{​​{1}}事件处理,但每次被解雇两次可能是什么原因?

以下是在Grid上实施拖放的代码:

TreeView

2 个答案:

答案 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