如何有效隐藏Windows Phone 8.1软键盘?

我想在点击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; } 

仅部分工作。 它只是在我第一次使用文本框时才隐藏键盘。 第二次键盘重新出现。

有直接的API支持来隐藏和显示InputPane。 你不需要试图伪造系统。

Windows.UI.ViewManagement.InputPane。 Windows Phone 8.1上提供了TryShow和TryHide方法。

另一种选择是在用户点击Enter时将焦点移动到更合适的控件。

这是用户按下回车键时隐藏键盘的完整代码

  private void TextBox_KeyUp(object sender, KeyRoutedEventArgs e) { if(e.Key==Windows.System.VirtualKey.Enter) { Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide(); } } 

我只是做了类似的事情并且它正在发挥作用:

 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; }