使用ctrl键向下的WPF DragDrop

时间:2013-09-11 08:41:17

标签: wpf drag-and-drop

我正在尝试以wpf形式实现拖放功能。目的是通过拖动来实现制作用户控件的副本(类似于使用 ctrl + Mouseleftbutton拖放的Windows 7文件夹副本)。当ctrl键没有关闭时,drop工作正常,但是当 ctrl 键关闭时,drop事件不会被触发。当 ctrl 键关闭时,如何检测到丢弃?

1 个答案:

答案 0 :(得分:2)

您不需要检测按键以完成您之后的操作。这一切都取决于(DragEventArgs).AllowedEffects属性的值。这是在您调用DragDrop.DoDragDrop方法时初始设置的:

DragDrop.DoDragDrop(dragSource, data, DragDropEffects);

此处,DragDropEffects属性表示类型DragDropEffects的枚举。如果您将其设置为DragDropEffects.Copy | DragDropEffects.Move,则 应能够移动副本(通过按住Ctrl键):

DragDrop.DoDragDrop(dragSource, data, DragDropEffects.Copy | DragDropEffects.Move);

现在,在其中一个接收类型为DragEventArgs的参数的拖放处理程序中,您应该看到(DragEventArgs).AllowedEffects属性将具有您在其中设置的值DragDrop.DoDragDrop方法。您仍然可以将(DragEventArgs).Effects属性设置为相同的值以允许'允许'当用户释放鼠标按钮时进行的两个操作。