我正在尝试以形式实现拖放功能wpf
。目的是通过拖动来实现复制用户控件(类似于使用ctrl+Mouseleftbutton
拖放复制Windows 7文件夹)。当 ctrl 键没有按下时,drop 可以正常工作,但是当ctrl键按下时,drop 事件不会被触发。按键按下时如何检测跌落ctrl?
问问题
816 次
1 回答
3
你不需要检测按键来完成你所追求的。这一切都取决于(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
属性设置为相同的值,以便在用户释放鼠标按钮时“允许”这两个操作发生。
于 2013-09-11T10:04:04.270 回答