当我以编程方式将焦点设置为组件时,键盘关闭
本文关键字:组件 键盘 设置 编程 方式 焦点 | 更新日期: 2023-09-27 18:33:06
我必须在页面中输入字段,用户名和密码。 在用户名文本框上单击输入时,我想将焦点移动到密码框,焦点正确,但键盘关闭。 如何保持键盘打开?
if (p.OriginalSource is PasswordBox)
{
loginCommand.Execute(null);
}
else if (p.OriginalSource is TextBox) //assuming there is no third box that can handle
{
var element = (p.OriginalSource as TextBox).FindName("passwordbox");
var ss = ((WatermarkPasswordBox)element).Focus();
((WatermarkPasswordBox)element).UpdateLayout();
//((WatermarkPasswordBox)element).Password = "";
}
为您的用户名文本框创建 KeyDown 事件,并在事件中编写代码,如下所示
if (e.Key == System.Windows.Input.Key.Enter)
{
PasswordBox.Focus();
}
这对我有帮助
好吧,
即使付出了太多努力,它也从视图模型中对我不起作用。 所以我从代码隐藏中尝试了这个,它奏效了。
对于一种登录屏幕,我处理了用户名字段(TextBox
)的Keydown事件,并将焦点设置为输入键按下事件时归档的密码(PasswordBox
):
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key.Equals(Key.Enter))
{
PasswordBox.Focus();
}
}