Domanda

Qual è il modo migliore per catturare il tasto Invio in un PasswordBox? (WPF / XAML)

Ho un campo TextBox e un campo PasswordBox sul mio modulo di login (username e immissione della password). Ho anche un pulsante di accesso, che richiama il metodo che esegue il processo di convalida di accesso.

ho bisogno di fare il tasto Invio reagire allo stesso modo nel PasswordBox, in modo che l'utente può avere l'opzione di inserire il proprio nome utente e password e semplicemente premere Invio effettuare il login.

Qualcuno sa come questo è fatto in WPF? Ogni aiuto è apprezzato.

È stato utile?

Soluzione

C'è un meccanismo ancora più semplice per attivare il codice del pulsante. WPF classe Button fornisce una proprietà chiamata IsDefault. Quando è impostata su true, se si preme il ritorno, mentre alcuni oggetti nella finestra hanno messa a fuoco, il codice dell'evento click del pulsante verrà licenziato automaticamente. Questo meccanismo funziona come un fascino con la PasswordBox.

Altri suggerimenti

È possibile gestire l'evento KeyDown sul PasswordBox (e TextBox se lo si desidera) e poi utilizzare il seguente gestore di eventi -

private void OnKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key != Key.Return && e.Key != Key.Enter)
        return;
    e.Handled = true;
    HandleEnter();
}

Si potrebbe provare a utilizzare un RoutedCommand.

È possibile impostare sulla proprietà Comando del pulsante.
È inoltre possibile aggiungere un KeyGesture alle InputBindings del vostro LoginForm per legare il tasto Invio per attivare il vostro RoutedCommand.

Quindi aggiungere un CommandBinding nelle CommandBindings del vostro LoginForm di impegnare la RoutedCommand ai gestori eseguito nel vostro codice ed effettuare o innescare il processo di convalida di accesso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top