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!