2016-11-28 1 views
0

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

Итак, вопрос: можно ли отключить встроенную ОСУ внутри нашего приложения? Если нет, возможно ли отключить OSK для JUST OUR APPLICATION через реестр или настройки?

+1

* 'и Allready реализовали свою собственную виртуальную клавиатуру "* Здесь вы заладились Было. никогда не было хорошей причиной для внедрения вашей собственной виртуальной клавиатуры, ОС поставлялась с ней практически навсегда. Таким образом, решение очевидно: удалите свою виртуальную клавиатуру и начните использовать ту, что поставляется с ОС. То, что пользователь будет знаком с гарантированным совместимостью, и тот, который был полностью отлажен даже для всех угловых случаев. И тот, который вытащит вас из беспорядка, в котором вы находитесь, для которого ответ «нет». –

+2

@ CodyGray - наше приложение представляет собой полное приложение для POS n, поэтому пользователь никогда не свяжется с Windows. Наша клавиатура реализует, кроме того, пользовательские функции, которые жизненно важны для нашего приложения. Но спасибо за ваш комментарий. Простое «нет» было бы более полезным. Режим планшета - это всего лишь уголок для нескольких пользователей, у которых есть планшеты с ними и продаются на открытом воздухе. – SirBirne

ответ

4

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

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

Ты герой! – SirBirne

0

Как указано (и пояснено) в комментариях, нет возможности отключить OSK только для одного приложения. Мы решили проблему, отключив службу «Touch Keyboard and Handwriting Panel». В настоящее время это единственное решение, хотя я не полностью удовлетворен. Это - по крайней мере в нашем случае - переносимое решение для планшетов и кабриолетов.

Смежные вопросы