Программное определение наличия и состояния выдвижной клавиатуры у Windows Phone 7

Некоторые модели Windows Phone 7 обладают выдвижной клавиатурой. Целесообразно определять наличие такой клавиатуры и обрабатывать её состояние (задвинута/выдвинута), поскольку при выдвинутой аппаратной клавиатуре экранная клавиатура при вводе текста отображаться не будет и дизайн пользовательского  интерфейса можно немного изменить с учетом наличия или отсутствия аппаратной клавиатуры.
Итак, как программно работать с этими свойствами:
Указать на сборку (в References) Microsoft.Phone.dll (если не указано).
Подключить пространство имен Microsoft.Phone.Info
using Microsoft.Phone.Info;

Свойство DeviceStatus.IsKeyboardPresent — возвращает булево значение (истина/ложь). Указывает содержит ли устройство аппаратную клавиатуру.
Свойство DeviceStatus.IsKeyboardDeployed возвращает булево значение (истина/ложь). Указывает выдвинул ли пользователь аппаратную клавиатуру устройства.
Событие KeyboardDeployedChanged – соответствует событию выдвигания/задвигания аппаратной клавиатуры.

Примеры:
1)

//определение наличия аппаратной клавиатуры
if (DeviceStatus.IsKeyboardPresent)
{
keyboard1.Text = «устройство имеет аппаратную клавиатуру»;
}
else
{
keyboard1.Text = «устройство не имеет аппаратной клавиатуры»;
};
2)
//определение выдвинута или задвинута аппаратная клавиатура
if (DeviceStatus.IsKeyboardDeployed)
{
keyboard.Text = «включена аппаратная клавиатура»;
}
else
{
keyboard.Text = «включена экранная клавиатура»;
};
3)
// обработка  выдвигания/задвигания клавиатуры
DeviceStatus.KeyboardDeployedChanged += (sender, e) =>
{
//здесь обрабатываем событие
};

Сборка с примерами 1 и 2 доступна тут.
Как проверить в эмуляторе:
В эмуляторе переключение между экранной и аппаратной клавиатурой осуществляется клавишами Page Up/Page Down при активном для набора текста TextBox. Эмулятор всегда выдает наличие аппаратной клавиатуры
Запустите приложение. Оно отобразит наличие аппаратной клавиатуры и текущую клавиатуру (экранную или аппаратную). Активируйте TextBox одинарным тапом. Переключитесь между экранной и аппаратной клавиатурой. Выйдите из приложения и войдите снова. Приложение отображает уже новое состояние клавиатуры.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *