我想在点击 Enter 键时隐藏软键盘,但没有适合我的解决方案。 (Windows Phone 8.1通用应用程序)
这个不起作用:
if (e.Key == VirtualKey.Enter)
{
textBox.IsEnabled = false;
textBox.IsEnabled = true;
}
这样的方法:
private void LoseFocus(object sender)
{
var control = sender as Control;
var isTabStop = control.IsTabStop;
control.IsEnabled = false;
control.IsTabStop = false;
control.IsEnabled = true;
control.IsTabStop = isTabStop;
}
仅部分工作。它只是在我第一次使用文本框时才隐藏键盘。第二次键盘重新出现。
答案 0 :(得分:17)
有隐藏的API支持来隐藏和显示InputPane。你不需要试图伪造系统。
Windows Phone 8.1上提供了Windows.UI.ViewManagement.InputPane。TryShow和TryHide方法。
另一个选项是当用户点击Enter时将焦点移动到更合适的控件。
答案 1 :(得分:9)
这是用户按下回车键时隐藏键盘的完整代码
private void TextBox_KeyUp(object sender, KeyRoutedEventArgs e)
{
if(e.Key==Windows.System.VirtualKey.Enter)
{
Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide();
}
}
答案 2 :(得分:2)
我刚刚做了类似的事情并且正在发挥作用:
private async void makeRequest(string title, int page)
{
myTextBox.IsEnabled = false;
myTextBox.IsTabStop = false;
// here is my httprequest and changing itemssource of listview
myTextBox.IsEnabled = true;
myTextBox.IsTabStop = true;
}