我正在尝试以wpf
形式实现拖放功能。目的是通过拖动来实现用户控件的副本(类似于使用ctrl + Mouseleftbutton
拖放的Windows 7文件夹副本)。当Ctrl键没有按下时,拖放操作正常,但是当Ctrl键按下时,不会触发drop事件。按下Ctrl键时如何检测掉线?
最佳答案
您无需检测按键即可完成所要完成的工作。这完全取决于(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
属性设置为相同的值,以“允许”用户释放鼠标按钮时进行两项操作。关于wpf - WPF DragDrop与Ctrl键按下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18736458/