Я поддерживаю / разрабатываю приложение C&C, которое обычно используется на сенсорных экранах. Большинство текстовых полей требуют ввода чисел, поэтому большая часть обычной клавиатуры бессмысленна. Мой босс хочет, чтобы я сделал цифровую клавиатуру без клавиатуры для этих ящиков. (У нас есть и другие буквенно-цифровые поля.) Пользователь может установить флажок, чтобы указать, нужна ли экранная клавиатура.
Я узнал из Как отключить маленькую сенсорную клавиатуру в элементах управления редактированием Windows, как убедиться, что стандартная клавиатура Windows не появятся для моего приложения. Реестр уродливый, но, по крайней мере, позволяет мне вести себя хорошо со всеми.
Поскольку приложение уже создано, я решил изучить использование словаря ресурсов, чтобы изменить текстовые поля на месте; см. Можно ли установить код за словарем ресурсов в WPF для обработки событий?. Судя по комментариям, это, по-видимому, также уродливо, в соответствии с дизайном WPF.
Теперь мне нужно сообщить своему коду, где находится окно (или другой элемент управления) для клавиатуры. Похоже на атрибут XAML - свойство зависимости. К сожалению, ResourceDictionary
не расширяет DependencyObject
, поэтому кажется, что этот метод неработоспособен.
Согласно WPF: определенные текстовые поля ввода (для номеров телефонов и т. Д.), что-то вроде это будет работать, если при нажатии будет вызвана клавиатура только с разрешенными символами. На самом деле, это было бы абсолютно идеально. Если бы только это было частью WPF и, следовательно, интегрировано с клавиатурой.
Но, может быть, часть моего подхода неверна? Как я могу получить цифровую клавиатуру, которая появляется, когда выбраны "числовые поля"? Я действительно не хочу дублировать (в отличие от ссылки) словарь ресурсов на каждой странице XAML, содержащей текстовое поле.
P.S. Как форматирование вопроса?