c# .net wpf c#-4.0

c# - Cómo cerrar una ventana en WPF en una clave de escape



.net c#-4.0 (1)

Posible duplicado:
¿Cómo puedo asignar el comportamiento ''Cerrar en la tecla de escape'' a todas las ventanas de WPF dentro de un proyecto?

Quiero cerrar las ventanas en mi proyecto wpf cuando el usuario hace clic en el botón de escape. No quiero escribir el código en cada ventana pero quiero crear una clase que pueda captar cuando el usuario presione la tecla de escape.


Opción 1

Use la propiedad Button.IsCancel .

<Button Name="btnCancel" IsCancel="true" Click="OnClickCancel">Cancel</Button>

Cuando establece la propiedad IsCancel de un botón en verdadero, crea un botón que está registrado con AccessKeyManager. El botón se activa cuando un usuario presiona la tecla ESC.

Sin embargo, esto funciona correctamente solo para los cuadros de diálogo.

Opcion 2

Agregue un controlador a PreviewKeyDown en la ventana si desea cerrar ventanas en Esc presione.

public MainWindow() { InitializeComponent(); this.PreviewKeyDown += new KeyEventHandler(HandleEsc); } private void HandleEsc(object sender, KeyEventArgs e) { if (e.Key == Key.Escape) Close(); }