2011-12-01 12 views
5

Come posso cancellare un'operazione di trascinamento corrente? Voglio usare la chiave di escape per annullare le operazioni di trascinamento in esecuzione.WPF annulla operazione di trascinamento

Ive ha esaminato la classe DragDrop, ma non riesce a vedere nulla che possa ottenere qualcosa come DragDrop.Cancel. Qualche idea?

risposta

9

Ho risolto l'operazione annullando utilizzando il seguente:

Sulla Control eseguire il trascinamento (DataGrid nel mio caso) ho aggiunto un gestore per l'evento QueryContinueDrag.

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

La condizione nel tuo caso sarebbe Keyboard.IsKeyDown(Key.Escape).

+1

Oppure direttamente ['e.EscapePressed'] (http://msdn.microsoft.com/en-us/library/system.windows.querycontinuedrageventargs.escapepressed.aspx). –

+0

Grazie amico, è stato utile – Rida

1

Utilizzare l'evento DragDrop.QueryContinue, questo consente di annullarlo tramite la proprietà Action.

Problemi correlati