Отключить виртуальную клавиатуру в режиме планшета Windows 10 для одного приложения

Мы написали приложение для сенсорных устройств на C#/WPF и уже внедрили собственную виртуальную клавиатуру. Начиная с windows 10-летия (или ранее) у нас проблемы с устройствами в "режиме планшета". OSK по умолчанию открывается всякий раз, когда фокусируется поле ввода.

Итак, вопрос: возможно ли отключить встроенный OSK внутри нашего приложения? Если нет, возможно ли отключить OSK для ПРОСТОГО НАШЕГО ПРИМЕНЕНИЯ через реестр или настройки?

2 ответа

Решение

У меня была точно такая же проблема. Основываясь на этой теме, мне удалось отключить автоматический вызов клавиатуры (TabTip.exe) путем переопределения OnCreateAutomationPeer метод TextBox:

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

Как указано (и объяснено) в комментариях, нет возможности отключить OSK только для одного приложения. Мы решили проблему, отключив услугу "Сенсорная клавиатура и панель рукописного ввода". В настоящее время это, кажется, единственное решение, хотя я не полностью удовлетворен. Это - по крайней мере в нашем случае - приемлемый обходной путь для планшетов и кабриолетов.

Другие вопросы по тегам