如何有效隐藏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; }