У меня есть приложение WPF, написанное на .NET 4.6.1, которое используется на планшетах. Когда я фокусирую текстовое поле, виртуальная клавиатура TabTip автоматически вызывается, когда:
- включен режим планшета и фокусировка производится касанием или стилусом
- режим планшета выключен, включена настройка
Show the touch keyboard when not in tablet mode and there's no keyboard attached
и фокусировка осуществляется касанием или стилусом - выключен режим планшета, отключена настройка
Show the touch keyboard when not in tablet mode and there's no keyboard attached
и фокусировка осуществляется стилусом (не сенсорным)
Мне нужно отключить это поведение.
До сих пор я использовал следующий обходной путь для отключения автоматического вызова клавиатуры:
class MyTextBox : TextBox
{
protected override AutomationPeer OnCreateAutomationPeer()
{
return new FrameworkElementAutomationPeer(this);
}
}
Начиная с Windows 10 версии 1803 (обновление за апрель 2018 г.) - возможно, даже с 1709 (обновление Fall Creators), но я не могу подтвердить это сейчас - это больше не работает, и клавиатура всегда вызывается.
Есть ли способ, как я могу предотвратить автоматическое отображение TabTip в новейшей версии Windows 10 в моем приложении?
Хотя это не идеально (это влияет на всю систему), я также попытался отключить Touch Keyboard and Handwriting Panel Service
, как описано здесь. Но на 1803 служба продолжает запускаться, как только вызывается клавиатура, например. с помощью кнопки панели задач.