Показать программную панель ввода (SIP) на WP7 программно
Как можно программно отобразить программную панель ввода (SIP)/ клавиатуру с помощью кода. (У меня нет текстового поля, в котором я могу указать InputScope).
2 ответа
От Джеффа Бланкенберга 31 день Windows Phone 7:
Иногда вы хотите получить ввод с клавиатуры от своего пользователя, даже если вы не хотите представлять его в реальном TextBox. Вероятно, есть много способов обойти это, но я использовал удобный, который легко выполнить. (Если вы ищете причину для этого, подумайте об игре Палач. Я не хочу, чтобы клавиатура была видна всегда, но я также не хочу, чтобы текстовое поле отображалось на экране.)
Поместите кнопку на свою страницу.
Разместите TextBox на своей странице, но убедитесь, что он скрыт от глаз пользователя.
Либо поместите его за пределы экрана, сделайте его полностью прозрачным (и на абсолютном фоне), либо каким-либо другим методом, который позволяет добавить его в ваше визуальное дерево, но не позволяет пользователю увидеть его.
Установите обработчик событий на вашей кнопке, который устанавливает Focus() в скрытое текстовое поле при его нажатии.
Это оно! Это позволит вам показывать клавиатуру, чтобы пользователь не увидел текстовое поле.
Если вы используете XNA, вы можете использовать Guide.BeginShowKeyboardInput, но я не уверен, что это разрешено, если вы делаете Silverlight. Но я буду второй комментарий на "почему?" потому что, если у вас нет текстового поля, как вы показываете пользователю, что он печатает?