Comment le WPF Bouton.IsCancel bien travailler?
L'idée de base derrière un bouton Annuler afin de permettre la fermeture de votre fenêtre avec une fuite de pression de Touche.
Vous pouvez définir la IsCancel bien sur
le bouton Annuler pour vrai, entraînant la
Bouton annuler pour fermer automatiquement
la boîte de dialogue sans avoir à manipuler les Cliquez
de l'événement.
Source: la Programmation de WPF (Griffith, Vend)
Donc cela devrait fonctionner
<Window>
<Button Name="btnCancel" IsCancel="True">_Close</Button>
</Window>
Toutefois le comportement que j'attends n'est pas pour moi. Le parent de la fenêtre est la fenêtre principale de l'application spécifiée par l'Application.StartupUri de la propriété. Ce qui fonctionne c'est
<Button Name="btnCancel" IsCancel=True" Click="CloseWindow">_Close</Button>
private void CloseWindow(object sender, RoutedEventArgs)
{
this.Close();
}
- Est le comportement de IsCancel différentes selon que la Fenêtre est une fenêtre normale ou une boîte de Dialogue? Ne IsCancel travailler comme annoncé seulement si ShowDialog a été appelé?
- Est explicite Cliquez sur gestionnaire requis pour le bouton (avec IsCancel true) pour fermer une fenêtre sur une Évasion de la presse?
Vous devez vous connecter pour publier un commentaire.
Oui, il fonctionne uniquement sur les dialogues comme une fenêtre normale n'a pas de notion de "annulation", c'est le même que DialogResult.Annuler retour de ShowDialog en WinForms.
Si vous vouliez fermer une Fenêtre d'évasion vous pouvez ajouter un gestionnaire pour PreviewKeyDown sur la fenêtre, camionnette, qu'il est la Clé.S'échapper et fermez le formulaire:
Nous pouvons prendre de Steve répondre à une étape plus loin et créer un joint propriété qui fournit les "échapper à la fermeture" de la fonctionnalité de n'importe quelle fenêtre. Écriture de la propriété une fois et l'utiliser dans n'importe quelle fenêtre. Il suffit d'ajouter les éléments suivants à la fenêtre de code XAML:
Voici le code de la propriété:
Ce n'est pas tout à fait le droit est-il...
MSDN dit ceci: Lorsque vous définissez la IsCancel propriété d'un bouton pour vrai, vous créez un Bouton qui est enregistré auprès de la AccessKeyManager. Le bouton est activé lorsqu'un utilisateur appuie sur la touche ECHAP.
Si vous avez besoin d'un gestionnaire dans votre code derrière
Et vous n'avez pas besoin de toutes les propriétés attachées ou quelque chose comme ça
Oui, c'est le droit.Dans les fenêtres de l'Application en WPF AcceptButton et Bouton Annuler est là. Mais une chose est que si vous configurez le contrôle de visibilité comme fausse, alors il ne fonctionnera pas comme prévu.Pour cela vous avez besoin de faire une visibilité aussi vrai dans WPF. Par exemple: (il n'est pas de travail pour le bouton Annuler car ici, la visibilité est faux)
Donc, vous avez besoin de le faire:
Alors vous devez écrire
btnClose_Click
dans le fichier code-behind: