web-dev-qa-db-fra.com

Comment créer un bouton d'envoi dans WPF?

Lorsque vous appuyez sur Enter n'importe où dans un HTML formil déclenche son actionname__, ce qui équivaut à appuyer sur le bouton submitname__. Comment faire une fenêtre que quand je presse Enter n'importe où il déclenchera un événement?

57
Jader Dias

Définissez la propriété IsDefault du bouton sur true pour activer le Enter clé pour activer l'action de ce bouton. Il y a aussi la propriété IsCancel qui fait la même chose pour le Escape clé.

110
Alex B

Assignez l’événement PreviewKeyDown à la fenêtre en XAML, puis vérifiez le KeyEventArgs dans codebehind pour déterminer si l’utilisateur a appuyé sur le Enter clé.

Code XAML:

<Window
    [...]
    PreviewKeyDown="Window_PreviewKeyDown">

Code derrière:

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        // Whatever code you want if enter key is pressed goes here
    }
}
6
ihatemash

J'ai trouvé que le contrôle DatePickeravalerait le Enter appuyez sur la touche pour que le bouton par défaut ne soit pas cliqué. J'ai écrit ce gestionnaire d'événements pour résoudre ce problème. Utilisez PreviewKeyUppour vous assurer que DatePickerexécute son code de formatage de la date avant de cliquer sur le bouton par défaut.

private void DatePicker_PreviewKeyUp(object sender, KeyEventArgs e) {
    // event handler to click the default button when you hit enter on DatePicker
    if (e.Key == Key.Enter) {
        // https://www.codeproject.com/Tips/739358/WPF-Programmatically-click-the-default-button
        System.Windows.Input.AccessKeyManager.ProcessKey(null, "\x000D", false);
    }
}
0
Walter Stabosz