22

在 PasswordBox 中捕获返回键的最佳方法是什么?(WPF/XAML)

我的登录表单上有一个 TextBox 字段和一个 PasswordBox 字段(用于输入用户名和密码)。我还有一个登录按钮,它调用执行登录验证过程的方法。

我需要让 Return 键在 PasswordBox 中以相同的方式做出反应,以便用户可以选择输入他们的用户名和密码,然后只需点击 Return 即可登录。

有谁知道这是如何在 WPF 中完成的?任何帮助表示赞赏。

4

3 回答 3

61

有一个更简单的机制来激活按钮的代码。WPF Button 类提供了一个名为 IsDefault 的属性。当设置为 true 时,如果在窗口中的某些对象有焦点时按回车,按钮的单击事件代码将自动触发。这种机制就像密码框的魅力一样。

于 2009-07-24T20:07:06.583 回答
6

您可以处理 PasswordBox 上的 KeyDown 事件(如果需要,还可以处理 TextBox),然后使用以下事件处理程序——

private void OnKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key != Key.Return && e.Key != Key.Enter)
        return;
    e.Handled = true;
    HandleEnter();
}
于 2009-07-24T19:29:34.710 回答
1

您可以尝试使用 RoutedCommand。

您可以在 Button 的 Command 属性上设置它。
您还可以将 KeyGesture 添加到登录表单的 InputBindings 以绑定 Enter 键以触发您的 RoutedCommand。

然后在您的登录表单的 CommandBindings 中添加一个 CommandBinding,以将 RoutedCommand 绑定到代码中的 Executed 处理程序,并执行或触发您的登录验证过程。

于 2009-07-24T19:20:50.373 回答