After being disappointed with Android development, I’m ramping back up on WPF.  I have a full screen app and no buttons visible, so I would like to implement the ESC key to close the window instead of using ALT+F4.

Looking around the net, I can do this by putting a dummy button on my View that knows how to close the View.  I can then make that button invisible, but set it’s IsCancel property, which triggers the event when ESC is pressed.  I could also create my own class that implements ICommand.

But really, I found something far simpler and it feels a lot cleaner.  In the XAML, you do the following:

<Window.CommandBindings>
 <CommandBinding Command="Close" Executed="OnCloseExecuted" />
</Window.CommandBindings>
<Window.InputBindings>
 <KeyBinding Command="Close" Key="Esc" />
</Window.InputBindings>

You code-behind looks like this:

private void OnCloseExecuted(object sender, ExecutedRoutedEventArgs e)
{
 this.Close();
}

Voila!  I got this tip from Wallace Kelly’s blog – thanks Wallace!