La idea básica detrás de un botón Cancelar es permitir el cierre de su ventana con una tecla de escape.¿Cómo funciona la propiedad WPF Button.IsCancel?
Usted puede establecer la propiedad IsCancel en el botón Cancelar para cierto, haciendo que el botón para cerrar automáticamente el diálogo sin manipular el evento Haga clic Cancelar.
Fuente: Programación de WPF (Griffith, Sells)
lo que este debe trabajar
<Window>
<Button Name="btnCancel" IsCancel="True">_Close</Button>
</Window>
Sin embargo el comportamiento espero que no está funcionando para mí. La ventana principal es la ventana principal de la aplicación especificada por la propiedad Application.StartupUri. Lo que funciona es
<Button Name="btnCancel" IsCancel=True" Click="CloseWindow">_Close</Button>
private void CloseWindow(object sender, RoutedEventArgs)
{
this.Close();
}
- es el comportamiento de IsCancel diferente en función de si la ventana es una ventana normal o un diálogo? ¿Funciona IsCancel como se anuncia solo si se ha llamado a ShowDialog?
- ¿Se requiere un controlador de Click explícito para el botón (con IsCancel configurado en verdadero) para cerrar una ventana en una prensa de Escape?
Sí. Las propiedades adjuntas todavía no 'hacen clic' instantáneamente en mi cabeza. – Gishu
Funciona muy bien, lo único es que tuve que reemplazar el casting a Window y agregar una verificación más para null como se sugiere aquí - http://stackoverflow.com/questions/10206742/unable-to-cast-object-of-type -microsoft-expression-platform-wpf-instancebuilder, para evitar el error "No se pudo convertir el objeto de tipo 'Microsoft.Expression.Platform.WPF.InstanceBuilders.WindowInstance' para escribir 'System.Windows.Window'" (el proyecto pudo compilar con éxito, pero los errores fueron molestos. Eso es para mi VS 2012 + R #. También tuve que reiniciar VS después de eso. – sarh