wpf dragenter/dragleave 问题

Posted

技术标签:

【中文标题】wpf dragenter/dragleave 问题【英文标题】:wpf dragenter/dragleave problem 【发布时间】:2011-06-04 10:47:40 【问题描述】:

我正在编写一个 WPF 应用程序,在应用程序的控件中支持拖放,并且还在我的桌面文件和我的应用程序之间进行拖放。我用装饰器来改变我的鼠标光标。

控件之间的内部拖放操作没有问题。问题是桌面文件和我的应用程序之间的拖放。

我为我的窗口设置了 DragEnter 和 DragLeave 处理程序。当我将文件拖动到我的应用程序中时,DragEnter 被触发,但它不仅被触发一次,而且在我的应用程序窗口上交替使用 DragLeave 继续触发。

我已经实现的是,我可以设法将文件拖到我的应用程序中,并带有所需的装饰器;但是如果我一直按住鼠标并将文件拖回桌面,装饰器就会卡在角落里。我无法使用 DragLeave 清除装饰器,因为当我在应用程序中拖动鼠标时,DragLeave 事件会不停地触发。

我希望 DragLeave 仅在鼠标光标拖动离开我的应用程序时触发。

有什么解决方法吗?

【问题讨论】:

【参考方案1】:

这是您可以针对这种情况采取的一种可能的解决方法。 DragDrop - DragEnter/DragLeave Events keep firing

【讨论】:

以上是关于wpf dragenter/dragleave 问题的主要内容,如果未能解决你的问题,请参考以下文章

dragenter/dragleave 防止 drop 发射

DragDrop - DragEnter/DragLeave 事件持续触发

如果拖动目标被其他图形遮挡,WPF 拖放事件不会通过

拖动基本实现

有小伙伴问:上位机用QT还是winform/wpf好?

QQ的一些图标是隐藏了按钮的边框 但是鼠标放在上面又出现了 想问一下如何用WPF实现的