Экранная клавиатура Windows Tablet закрывает большую часть целевого окна общего доступа

Я пишу приложение для Магазина Windows. Это цель общего доступа, которая позволяет пользователю обновлять фотографии продуктов, которые используются в основном приложении. Когда пользователь делится фотографией из другого приложения и выбирает мое приложение в качестве цели, оно позволяет пользователю выбирать продукты, которые он хочет обновить, отображает как старую фотографию, так и новую фотографию, которой поделились, а затем предоставляет пользователю возможность заменить фото. Процесс поиска продукта для обновления включает ввод пользователем текста в TextBox.

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

Другая проблема заключается в том, что экранная клавиатура планшета сразу появляется и закрывает нижнюю половину экрана, потому что TextBox имеет фокус. Итак, теперь видна только верхняя левая четверть экрана, что дает мне очень мало места для работы.

Это просто нормальная вещь, с которой мне приходится иметь дело, и все ли просто проектируют свое целевое окно общего доступа, чтобы использовать только это крошечное пространство? Или у кого есть другие решения?


person JoeMjr2    schedule 10.01.2013    source источник


Ответы (1)


Ничто не мешает вам справиться с представлением программной клавиатуры.

Windows.UI.ViewManagement.InputPane
    .GetForCurrentView().Showing += (s, e) => { /* do something */ };

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

var _KeyboardHeight = (int)e.OccludedRect.Height;

Я знаю, что вы бы предпочли, чтобы этим занималась операционная система. Это не. Мне жаль насчет того. Что есть, то есть. По крайней мере, мы можем объяснить это.

Удачи!

person Jerry Nixon    schedule 11.01.2013
comment
Спасибо! Это полезно. Я надеялся, что есть удобный хук вроде InputPane.Dismiss(). Ну что ж. - person JoeMjr2; 11.01.2013
comment
На самом деле нет надежного способа отключить клавиатуру программно. Я сам задавался вопросом: stackoverflow.com/questions/13205963/ - person Jerry Nixon; 11.01.2013