问题
What's the best way to catch the return key in a PasswordBox? (WPF/XAML)
I have a TextBox field and a PasswordBox field on my login form (for username and password entry). I also have a login button which invokes the method that performs the login validation process.
I need to make the Return key react the same way in the PasswordBox, so that the user can have the option enter their username and password and simply hit Return to log in.
Does anyone know how this is done in WPF? Any help is appreciated.
回答1:
There is an even easier mechanism to activate the button's code. WPF Button class provides a property called IsDefault. When set to true, if you press return while some objects in the window have focus, the code of the click event of the button will be fired automatically. This mechanism works like a charm with the passwordbox.
回答2:
You can handle the KeyDown event on the PasswordBox (and TextBox if desired) and then use the following event handler --
private void OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Return && e.Key != Key.Enter)
return;
e.Handled = true;
HandleEnter();
}
回答3:
You could try using a RoutedCommand.
You can set it on the Command property of the Button.
You can also add a KeyGesture to the InputBindings of your loginform to bind the Enter key to trigger your RoutedCommand.
Then add a CommandBinding in the CommandBindings of your loginform to bind the RoutedCommand to Executed handlers in your code and perform or trigger your login validation process.
来源:https://stackoverflow.com/questions/1179610/whats-the-best-way-to-catch-the-return-key-in-a-passwordbox-wpf-xaml