1

GiveFeedBack事件与QueryContinueDragWPF 或 WinForms 中的事件有什么区别?

我正在读的书说:

  • GiveFeedBack:为用户提供设置自定义鼠标指针的机会
  • QueryContinueDrag:使拖动源能够确定是否应取消拖动事件。

MSDN 补充说,这两个事件都是“在拖动源被拖动时连续触发的”

那么为什么会存在这种分离呢?当然,我也可以在 QueryContinueDrag 事件中设置自定义鼠标指针吗?

4

1 回答 1

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
}
于 2013-08-20T16:13:52.740 回答