Как создать собственное текстовое поле в Windows Phone 7? - PullRequest
2 голосов
/ 16 апреля 2011

Можно ли обработать глоток, создав специальное текстовое поле.

Я хочу создать собственное текстовое поле -> создать событие полученного фокуса -> На фокусе моего пользовательского текстового поля вместо SIP должна открыться моя пользовательская клавиатура.

Требования:

  1. Как создать собственное текстовое поле?
  2. Открыть пользовательскую клавиатуру вместо SIP
  3. Получить курсор в текстовом поле.

1 Ответ

1 голос
/ 18 апреля 2011

Отображение SIP обрабатывается операционной системой и всегда будет в верхней части визуального дерева любого приложения. Если вы хотите предоставить пользовательский SIP, вам потребуется альтернативный элемент управления вводом, поскольку отображение собственного SIP связано с элементами управления вводом (такими как TextBox, PasswordBox и т. Д.). Вы можете найти эту статью о создании болгарской клавиатуры полезной.

Чтобы создать пользовательский TextBox, вы могли бы начать с наследования от самого TextBox, но вы можете столкнуться с реализацией по умолчанию, поэтому вы можете просто захотеть наследовать от Control.

Чтобы открыть пользовательский SIP вместо SIP по умолчанию, вам нужно связать это с событием в вашем пользовательском TextBox, и это одно из мест, где наследование от Control, вероятно, облегчит вашу жизнь, потому что если вы наследуете из TextBox, то, как только он получит фокус, будет показан SIP по умолчанию. Возможно, вы захотите сделать SIP частью ControlTemplate для PhoneApplicationFrame, чтобы гарантировать, что он выше содержимого страницы.

Чтобы получить курсор в пользовательском текстовом поле, вам нужно самостоятельно обработать отображение каретки и обновить его по мере того, как пользователь вводит ваш пользовательский SIP.

Это огромная работа по достижению чего-то, что звучит просто, и я подозреваю, почему никто еще этого не сделал :) Я определенно рекомендовал бы запросить это как функцию на официальном WP7 Dev UserVoice форуме

...