我正在创建一个Windows 8.1应用程序,在用户按下按钮后,弹出窗口将打开大部分屏幕.popover中有几个文本框.
我从microsoft 找到了这个示例代码,介绍了如何检测屏幕键盘的外观.
我还发现以下SO帖子和网站基本上告知没有办法强制键盘关闭,而正确的做法实际上是以编程方式将隐藏元素集中在页面上或禁用然后重新启用文本框:
所以我按照建议创建了一个隐形按钮.当用户点击关闭按钮时,它应该关注该按钮并关闭键盘.什么情况是文本框确实失去焦点,但键盘不会消失.如果我使关闭按钮将焦点置于隐藏按钮并关闭弹出窗口(这是所需的效果),则在点击视图(之前在弹出窗口下)之前键盘不会消失.
如何关闭弹出窗口导致键盘解除?
编辑:似乎有一种方法可以以编程方式关闭键盘,因为在键盘打开时触发App Bar打开会自动关闭键盘.
当显示虚拟键盘的文本框被禁用时,它将关闭虚拟键盘.所以解决方案是将文本框属性IsEnabled设置为false并再次将其设置为true,以便可以再次使用它.
TextBox.KeyDown += (s, a) => {
if (a.Key == VirtualKey.Enter) {
TextBox.IsEnabled = false;
TextBox.IsEnabled = true;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5845 次 |
最近记录: |