¿Hay alguna forma directa de decirle a toda la aplicación WPF que reaccione ante las pulsaciones de tecla Escape intentando cerrar la ventana actualmente enfocada? No es una gran molestia configurar manualmente el comando y los enlaces de entrada, pero me pregunto si la repetición de este XAML en todas las ventanas es el enfoque más elegante.¿Cómo puedo asignar el comportamiento 'Cerrar en la tecla de escape' a todas las ventanas de WPF dentro de un proyecto?
<Window.CommandBindings>
<CommandBinding Command="Close" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Key="Escape" Command="Close" />
</Window.InputBindings>
Todas las sugerencias constructivas son bienvenidas!
podrían suponer un pérdidas de memoria ya que el singleton tiene un 'EventHandler'? – Maslow
No debería ser así, pero como realmente no nos importa la funcionalidad 'CanExecute', podemos protegerla haciendo que' CanExecute' siempre devuelva verdadero y reemplace el controlador 'CanExecuteChanged' con implementaciones de adjuntos vacíos (p. Ej.' Public event EventHandler CanExecuteChanged {add {} remove {}} ') –