【问题标题】:Disable virtual Keyboard in Windows 10 Tablet Mode for one Application在 Windows 10 平板电脑模式下为一个应用程序禁用虚拟键盘
【发布时间】:2017-04-12 05:57:32
【问题描述】:

我们为触控设备编写了一个 C#/WPF 应用程序,并且已经实现了我们自己的虚拟键盘。自 Windows 10 周年(或更早)以来,我们在“平板电脑模式”中遇到了设备问题。只要输入字段获得焦点,就会打开默认 OSK。

所以问题是:是否可以在我们的应用程序中禁用集成 OSK?如果没有,是否可以通过注册表或设置为 JUST OUR APPLICATION 禁用 OSK?

【问题讨论】:

  • '并且已经实现了我们自己的虚拟键盘" 这就是你出错的地方。没有一个很好的理由来实现你自己的虚拟键盘,操作系统已经附带一个几乎永远。所以解决方案很明显:移除您的自定义虚拟键盘​​,并开始使用操作系统附带的一个。一个用户熟悉的,一个保证兼容的,一个完全兼容的甚至对所有极端情况都进行了调试。并且可以让您摆脱困境,答案是“否”。
  • @CodyGray - 我们的应用程序是一个完整的 POS 应用程序,因此用户永远不会与 Windows 取得联系。我们的键盘还实现了对我们的应用程序至关重要的自定义功能。但谢谢你的评论。一个简单的“不”会更有帮助。平板电脑模式仅适用于少数携带平板电脑并在户外销售的用户。

标签: c# wpf windows on-screen-keyboard


【解决方案1】:

我遇到了完全相同的问题。基于this thread,我设法通过覆盖TextBoxOnCreateAutomationPeer 方法来禁用自动键盘(TabTip.exe)调用:

class MyTextBox : TextBox
{
    protected override AutomationPeer OnCreateAutomationPeer()
    {
        return new FrameworkElementAutomationPeer(this);
    }
}

【讨论】:

  • 你是英雄!
  • 如何实现 Passwordbox 的相同?
【解决方案2】:

正如在 cmets 中指出(和解释)的那样,不可能只为一个应用程序禁用 OSK。我们通过禁用“触摸键盘和手写面板”服务解决了这个问题。目前它似乎是唯一的解决方案,虽然我并不完全满意。这是 - 至少在我们的案例中 - 对于平板电脑和敞篷车来说是一种可以忍受的解决方法。

【讨论】:

    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2022-10-07
    相关资源
    最近更新 更多