是否可以在c#中显示,隐藏和操作Windows 8屏幕键盘?

时间:2013-01-28 20:55:08

标签: wpf windows-8 on-screen-keyboard

我正在制作一个WPF应用程序,用于没有硬件键盘的自助服务终端。目前我们正在使用第三方屏幕键盘,但Windows 8版本要好得多,我们正在考虑切换到它。

所以我的问题就是如果可以显示/隐藏它以及使用c#显示仅数字版本。

谢谢! 大卫

2 个答案:

答案 0 :(得分:2)

来自this source

  

没有直接的方式来以编程方式控制触控键盘。   要求用户设置焦点而不是程序是a   刻意设计决定,以防止UI流失。

     

有关详细信息,请参阅Input Hosting Manager and the Touch Keyboard   如何以及为什么这样做。 User-driven invocation部分   文档解释了您询问的具体行为。

但是,一旦用户触摸输入控件,软键盘将自动显示(无需额外编码)。

最后,要在仅限数字版本的键盘上解决您的问题,您可以在TextBox上使用InputScope建议不同的键盘布局。枚举的不同输入范围here,但其中一个是" Number"。

答案 1 :(得分:1)

我发布了一个示例,说明当用户点击文本框时如何在WPF应用程序中触发触控键盘,其位于:

http://code.msdn.microsoft.com/Enabling-Windows-8-Touch-7fb4e6de

我已经在这个样本上工作了好几个月,很高兴最终为我们的社区做出贡献。如果示例Q& A窗格中有任何问题,建议,问题等,请告诉我们

另请注意,虽然演示了如何“显示”键盘,但我不知道如何在此时以编程方式解除它,因此测试任何实际实现以确保其良好体验非常重要。例如,像Button这样的控件会在从TextBox获得焦点时关闭键盘,但是像Checkbox这样的某些控件不会在我的样本中证明这一点。