【问题标题】:Incorporating the Windows 7 onscreen keyboard into a WPF app将 Windows 7 屏幕键盘合并到 WPF 应用程序中
【发布时间】:2010-11-13 04:24:03
【问题描述】:

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

  1. 能够在安装了 .NET 3.5 sp1 的 XP 计算机上使用键盘。
  2. 为了能够在 Windows 7 上隐藏本机键盘,因为我已经在我的 UI 中加入了触摸屏键盘,所以我不需要另一个弄乱 UI。

这款原生键盘有两个吸引人的方面。首先,它会自动本地化为客户的语言(尽管应用程序的其余部分需要修改),其次,它似乎不会受到“触摸滞后”的影响,因为操作系统会试图弄清楚我是否”我在做一个手势,因为我显然是在键盘上打字。

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

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

【问题讨论】:

    标签: wpf windows-7 keyboard


    【解决方案1】:

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

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

    【讨论】:

    • 我已经走那条路了。问这个问题的重点是,Windows 7 应该与触摸屏兼容,所以我应该能够从我的程序中以一种有意义的方式与之交互。结合本机触摸屏控件是有意义的。 XP 与其说是一种要求,不如说是一种我知道不会实现的愿望。
    【解决方案2】:

    我发现的最好的东西是:

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

    它使用 WPF 的互操作,但似乎工作得很好。

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

    【讨论】:

    • 您的答案看起来是我最接近的答案。基本上,使用 Tablet XP SDK 来执行此操作,然后使用所描述的控件使其工作。但是,键盘在 XP 中不可用,除非它是平板电脑版。
    【解决方案3】:

    要在 wpf 应用程序中附加自定义屏幕键盘布局,请使用附加属性。 您将从 Ben Constable 的 Ramora Pattern 中得到清晰的概念: 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

    谢谢,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-13
      • 2018-11-03
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 2019-12-01
      相关资源
      最近更新 更多