WPF或WinForms中的事件GiveFeedBack
和QueryContinueDrag
之间有什么区别?
我正在读的这本书说:
MSDN补充说,在拖动拖动源时,两个事件都会连续触发
那为什么这个分离存在?当然我也可以在QueryContinueDrag事件中设置自定义鼠标指针?
答案 0 :(得分:2)
基本上,您可以将e.Effects
属性(从DragEventArgs
类)设置为DragDropEffects.None
,以取消任何公开它的处理程序的拖放操作,例如。 PreviewDrop
,PreviewDragOver
。因此,在我看来,你是正确的......你不需要在QueryContinueDrag
处理程序中执行此操作。
事实上,我有一个完整的拖放系统,图形装饰器都是通过Attached Properties
实现的,我根本没有费心去实现QueryContinueDrag
处理程序。
但是,如果要将光标更改为自定义光标,则将需要实现GiveFeedBack
处理程序,因为GiveFeedbackEventArgs
允许您执行此操作:
private void PreviewGiveFeedback(object sender, GiveFeedbackEventArgs e)
{
Mouse.SetCursor(Cursors.No);
e.Handled = true; // Important! - Hides the normal drag and drop cursors
}