C# 当我以编程方式设置组件的焦点时,键盘关闭
我必须在页面中输入字段、用户名和密码。在用户名文本框上单击enter键时,我想将焦点移动到PasswordBox,焦点正确,但键盘关闭。我怎样才能保持键盘打开C# 当我以编程方式设置组件的焦点时,键盘关闭,c#,windows-phone-7,C#,Windows Phone 7,我必须在页面中输入字段、用户名和密码。在用户名文本框上单击enter键时,我想将焦点移动到PasswordBox,焦点正确,但键盘关闭。我怎样才能保持键盘打开 if (p.OriginalSource is PasswordBox) { loginCommand.Execute(null); } else if (p.OriginalSource is TextBox) //assuming there is no third box that can handle {
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();
}
这对我有帮助从视图模型来看,即使付出了太多的努力,它也不适用于我。所以我从代码隐藏中尝试了这个方法,它成功了 对于一种登录屏幕,我处理了username字段(
TextBox
)的keydown事件,并在enter keydown事件中将焦点设置为password字段(PasswordBox
):
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key.Equals(Key.Enter))
{
PasswordBox.Focus();
}
}
不起作用。我在keyUp中已经有了这个(也尝试了keydown)你解决了这个问题吗?@MinaSamy是的,我不知怎么解决了。从viewmodel看,它不起作用,但在我尝试执行代码隐藏时起作用。没问题,请分享解决方案好吗?@MinaSamy plz查看我刚才添加的答案。