WPF отменить операцию перетаскивания - PullRequest
5 голосов
/ 01 декабря 2011

Как я могу отменить текущую операцию перетаскивания?Я хочу использовать клавишу выхода для отмены запущенных операций перетаскивания.

Я посмотрел на класс DragDrop, но не вижу ничего, что могло бы достичь чего-то вроде DragDrop.Cancel.Есть идеи?

Ответы [ 2 ]

9 голосов
/ 17 апреля 2013

Я решил операцию отмены, используя следующее:

На Control, выполняющем перетаскивание (в моем случае DataGrid), я добавил обработчик для события QueryContinueDrag.

private void DataGrid_QueryContinueDrag(object sender,
                                        QueryContinueDragEventArgs e)
{
    if (... condition ...)
        e.Action = DragAction.Cancel;
}

Условие в вашем случае будет Keyboard.IsKeyDown(Key.Escape).

1 голос
/ 01 декабря 2011

Используйте событие DragDrop.QueryContinue, это позволяет отменить его с помощью свойства Action.

...