我正在尝试以wpf
形式实现拖放功能。目的是通过拖动来实现制作用户控件的副本(类似于使用 ctrl + Mouseleftbutton
拖放的Windows 7文件夹副本)。当ctrl键没有关闭时,drop工作正常,但是当 ctrl 键关闭时,drop事件不会被触发。当 ctrl 键关闭时,如何检测到丢弃?
答案 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
属性设置为相同的值以允许'允许'当用户释放鼠标按钮时进行的两个操作。