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

时间:2013-10-04 10:29:10

标签: c# wpf keyboard windows-store-apps

由于Microsoft不允许更换系统的虚拟键盘,因此我开发了一个自定义虚拟键盘​​,作为UserControl在我的Windows应用商店中使用。我目前的问题是,只要用户点击TextBox,就会弹出默认的虚拟键盘。

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

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

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

1 个答案:

答案 0 :(得分:0)

你可以做几件事:

有键盘出现的事件,检查它们,看看是否可以阻止它。

您可以实现一个自定义TextBox来抑制OnPointerPressed事件,以便TextBox永远不会被聚焦。还有一些其他事情你需要做(例如通过设置IsTabStop=false来防止标记为焦点。

您可以从头开始实现自定义TextBox(看起来像TextBox一样)。

我认为第二种选择是最容易和最有趣的选择。

编辑:你也可以给你的TextBox DependencyProperty,你可以通过绑定设置当前的Page。在TextBox的OnGotFocus事件中,将视觉状态设置为“CustomFocus”(或您调用的任何内容),然后调用Page.Focus();