2

由于 Microsoft 不允许更换系统的虚拟键盘,因此我开发了一个自定义虚拟键盘​​作为UserControl在我的 Windows 应用商店应用程序中使用的。我目前的问题是,每当用户点击TextBox.

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

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

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

4

1 回答 1

0

你可以做几件事:

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

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

您可以从头开始实现自定义文本框(看起来和行为都像文本框)。

我认为第二个选项是尝试的最简单和最有趣的选项。

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

于 2013-10-04T16:23:48.917 回答