我想在编辑TextBox时按下输入/返回键时隐藏软键盘。这就是我目前在c#中所拥有的:
private void SearchBox_KeyUp(object sender, KeyRoutedEventArgs e)
{
TextBox textBox = sender as TextBox;
if(e.Key == VirtualKey.Enter)
{
this.Focus(FocusState.Programmatic); // sending focus to Page to hide keyboard
}
}
答案 0 :(得分:8)
尝试短暂禁用,然后启用TextBox。
if(e.Key == VirtualKey.Enter)
{
textBox.IsEnabled = false;
textBox.IsEnabled = true;
}
答案 1 :(得分:5)
private void BobbinRunningLength_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Enter)
{
this.Focus(FocusState.Programmatic);
}
}
这对我有用。
答案 2 :(得分:4)
试试这个..
private void SearchBox_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Enter)
{
this.Focus();
}
}
这应该有用。
答案 3 :(得分:4)
启用和禁用TextBox对我来说不起作用。
我正在将它用于Windows Phone 8.1 Runtime应用程序:
private void TextBox_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Enter)
{
Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().CoreWindow.IsInputEnabled = false;
Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().CoreWindow.IsInputEnabled = true;
}
}
答案 4 :(得分:0)
我知道这已经得到了回答,但是我想分享我的解决方案,我在XAML页面中使用虚拟页面(带有Visible / Collapsed的网格)时出现问题,当软键盘存在且页面改变了软键盘时并没有自动隐藏,显然是因为聚焦控制的父级是崩溃,奇怪和无证的行为。我的解决方案是将焦点放在要显示的下一页的元素上,以便操作系统理解它并隐藏软键盘:
xamlButton.Focus(FocusState.Programmatic);
selectPage(1);
其中selectPage(int);通过索引设置页面的可见或折叠属性。
将焦点设置为按钮效果很好,因为按钮没有键盘输入。