WPF取消拖拽操作

6

如何取消当前的拖动操作?我想使用Escape键来取消正在进行的拖动操作。

我看了DragDrop类,但没找到任何可以实现类似DragDrop.Cancel的东西。有什么想法吗?

2个回答

10

我使用以下方法解决了取消操作:

在执行拖动操作的 控件 上(在我的情况下是DataGrid),我添加了一个 QueryContinueDrag 事件的处理程序。

private void DataGrid_QueryContinueDrag(object sender,
                                        QueryContinueDragEventArgs e)
{
    if (... condition ...)
        e.Action = DragAction.Cancel;
}
在你的情况下,条件应为Keyboard.IsKeyDown(Key.Escape)

2
或者直接使用 e.EscapePressed - O. R. Mapper

1
使用DragDrop.QueryContinue事件,这样可以通过Action属性取消它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接