Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在密码箱中获取返回键的最佳方法是什么?(WPF/XAML)_Wpf_Xaml_.net 3.5_Return_Passwordbox - Fatal编程技术网

什么';在密码箱中获取返回键的最佳方法是什么?(WPF/XAML)

什么';在密码箱中获取返回键的最佳方法是什么?(WPF/XAML),wpf,xaml,.net-3.5,return,passwordbox,Wpf,Xaml,.net 3.5,Return,Passwordbox,在密码箱中捕获返回键的最佳方法是什么?(WPF/XAML) 我的登录表单上有一个文本框字段和一个密码框字段(用于输入用户名和密码)。我还有一个登录按钮,它调用执行登录验证过程的方法 我需要让Return键在PasswordBox中做出相同的反应,这样用户就可以选择输入用户名和密码,只需点击Return登录 有人知道WPF是如何做到这一点的吗?非常感谢您的帮助。您可以尝试使用RoutedCommand 您可以在按钮的命令属性上进行设置。 您还可以向loginform的InputBindings中添

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

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

我需要让Return键在PasswordBox中做出相同的反应,这样用户就可以选择输入用户名和密码,只需点击Return登录


有人知道WPF是如何做到这一点的吗?非常感谢您的帮助。

您可以尝试使用RoutedCommand

您可以在按钮的命令属性上进行设置。
您还可以向loginform的InputBindings中添加键手势,以绑定Enter键以触发RoutedCommand


然后在loginform的CommandBinding中添加CommandBinding,将RoutedCommand绑定到代码中已执行的处理程序,并执行或触发登录验证过程。

您可以在密码框(以及文本框,如果需要)上处理KeyDown事件,然后使用以下事件处理程序--


有一个更简单的机制来激活按钮的代码。WPF按钮类提供了一个名为IsDefault的属性。设置为true时,如果在窗口中的某些对象具有焦点时按return键,则按钮的单击事件代码将自动触发。这个机制就像密码箱的符咒。

听起来很强大!但现在这真的是最简单的方法吗?如果是这样的话,我会对微软大发雷霆,让我告诉你……看情况而定。这样,代码中只有一个处理程序,而不是两个(打开按钮,一个用于密码箱)。它更灵活,不像听起来那么复杂。只有两个额外的步骤,您只需执行一次:定义RoutedCommand和添加CommandBinding。该键手势类似于将eventhandler添加到passwordbox中,对于您设置命令而不是单击处理程序的按钮。但你有一个观点,对于一个简单的登录表单来说,这可能有点过头了。:)这将完美地工作,我只是很难找到可用于不同WPF控件的事件。。。谢谢谢谢你,这正是我所需要的!需要注意的是,IsDefault、IsDefault和IsCancel属性没有在WinRT中的button类上实现。令人失望。问题是,如果您将按钮的IsDefault属性设置为true,然后在任何文本框(例如,用户名文本框)中单击return,它仍在运行…@JPProgramer我明白您的意思,不过,这是表单上的预期行为。
private void OnKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key != Key.Return && e.Key != Key.Enter)
        return;
    e.Handled = true;
    HandleEnter();
}