适用于 Windows 应用商店应用的自定义虚拟键盘

本文关键字:应用 自定义 虚拟 键盘 Windows 适用于 | 更新日期: 2023-09-27 18:34:05

由于Microsoft不允许替换系统的虚拟键盘,因此我开发了一个自定义虚拟键盘作为UserControl,以便在我的Windows应用商店应用中使用。我目前的问题是,每当用户点击TextBox时,总是弹出默认的虚拟键盘。

从昨天开始,我一直在寻找解决这个问题的方法,但我无法解决。我几乎成功的尝试是开发一个带有透明CanvasTextBox。当用户点击Canvas时,焦点将以编程方式转移到TextBox,我的自定义虚拟键盘被实例化。但是,如果没有物理键盘连接到平板电脑,系统键盘也会使用此方法弹出(通过我的自定义键盘)。

我想使用 TextBox的主要原因是因为这样我可以保留和使用已经实现的插入符号函数,但这不是强制性的。

任何输入都会有所帮助,谢谢。

适用于 Windows 应用商店应用的自定义虚拟键盘

你可以做几件事:

当键盘出现时,有一些事件,请检查这些事件,看看是否可以阻止它。

您可以实现一个自定义文本框来抑制 OnPointerPressed 事件,以便文本框永远不会聚焦。您还需要做一些其他事情(例如通过设置IsTabStop=false来防止 Tab 键进入它以提供焦点。

您可以从头开始实现自定义文本框(其外观和行为类似于文本框)。

我认为第二种选择是最简单,最有趣的选择。

编辑:还可以通过绑定为文本框提供一个DependencyProperty,将当前Page设置为该。在文本框的OnGotFocus事件中,将视觉状态设置为"自定义焦点"(或任何你称之为它的内容),然后调用 Page.Focus() ;