void Complete()
{
IsActive = false;
CurrentListener = null;
if (Completed != null) {
Completed(this);
}
}
static void PostProcessInput(object sender, ProcessInputEventArgs e) { if (CurrentListener != null) { var a = e.StagingItem.Input as KeyEventArgs; if (a != null && a.Key == Key.Escape) { Mouse.Capture(null); CurrentListener.IsDown = false; CurrentListener.IsCanceled = true; CurrentListener.Complete(); } } }