将Windows 7屏幕键盘整合到WPF应用程序中

时间:2009-07-22 20:58:13

标签: wpf windows-7 keyboard

Windows 7有一个非常好的屏幕键盘程序/控制触摸屏。我有一个最初编写的触摸屏应用程序,将部署在XP上。是否可以将此键盘直接合并到我的应用程序中,而不是使用自定义控件?我找不到关于它的程序化信息,所以任何链接都会非常有用。具体来说,我需要:

  1. 能够在安装了.NET 3.5 sp1的XP机器上使用键盘。
  2. 为了能够在Windows 7上隐藏原生键盘,因为我已经在我的用户界面中整合了触摸屏键盘,所以我不需要另外一个混乱用户界面。
  3. 这种原生键盘有两个吸引人的方面。首先,它会自动本地化为客户的语言(虽然应用程序的其余部分需要修改),其次,它似乎没有“触摸延迟”,因为操作系统试图弄清楚我是否'我做了一个手势,因为我正在键盘上打字。

    该应用程序基于WPF,应该意味着可以轻松地与基于Windows 7的控件集成。

    编辑:我真的很喜欢XP的东西,但这不是必需的。但是,在Win7中使用键盘的能力似乎应该是可能的,甚至是正确的方法。

3 个答案:

答案 0 :(得分:2)

我发现的最好的事情是:

http://interactiveasp.net/blogs/natesstuff/archive/2008/10/01/ink-in-wpf-using-textinputpanel-for-text-input.aspx

它正在使用WPF的互操作,但似乎工作得非常好。

编辑:我希望我是真正写它的人,但我所做的就是找到它......

答案 1 :(得分:1)

简单地说,我对此表示怀疑。如果您尝试在自己的应用程序中使用Windows 7键盘,该应用程序在Windows 7上运行,可能。但是你所说的是试图在自己的应用程序中运行Windows 7操作系统级组件,这些组件在XP上运行 - 两个操作系统已经过时。哎呀,如果它是在Windows 7上构建的,我甚至不知道你是否可以在应用程序中运行它。

我们的产品还需要使用集成的屏幕键盘,我们无法找到任何替代品,而不是购买别人制造的或自行推出的产品。我们发现OS键盘没有简单的互操作性解决方案。但我们确实设法创建了自己的产品,并在几周内对其进行了全面测试。所以它不是坏。我会走这条路。

答案 2 :(得分:0)

要在wpf应用程序中附加自定义屏幕键盘布局,请使用附加属性。 你将从Ben Constable的Ramora模式中得到清晰的想法: http://blogs.msdn.com/b/bencon/archive/2006/07/26/more-advanced-attached-property-use-the-ramora-pattern.aspx

你可以从这里找到源代码: http://www.codeproject.com/KB/WPF/TouchScreenKeyboardWPF.aspx

谢谢,