GiveFeedBack
事件与QueryContinueDrag
WPF 或 WinForms 中的事件有什么区别?
我正在读的书说:
- GiveFeedBack:为用户提供设置自定义鼠标指针的机会
- QueryContinueDrag:使拖动源能够确定是否应取消拖动事件。
MSDN 补充说,这两个事件都是“在拖动源被拖动时连续触发的”
那么为什么会存在这种分离呢?当然,我也可以在 QueryContinueDrag 事件中设置自定义鼠标指针吗?
基本上,您可以将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
}