Запретить прокрутку экрана, когда в WP7 отображается мягкая клавиатура?
Есть ли способ предотвратить перемещение экрана вверх, когда мягкая клавиатура отображается в приложении Windows Phone?
У меня есть текстовое поле, которое находится в верхней половине экрана, поэтому, когда отображается мягкая клавиатура, он не распространяется на текстовое поле. Однако, когда текстовое поле прослушивается, экран по-прежнему сдвигается.
Можно ли это предотвратить?
Ответы
Ответ 1
Я потратил довольно много времени на то, чтобы найти решение этого вопроса - в моем случае я хотел, чтобы заголовок страницы оставался в верхней части экрана, а не прокручивался, когда открывалась клавиатура.
Лучшее, что я нашел, это решение, описанное в приведенном ниже сообщении, которое использует изменения в формате TranslateTransform (который запускается при открытии/закрытии клавиатуры), чтобы изменить размер верхнего поля и, следовательно, место для доступного содержимого.
http://sorokoletov.com/2011/08/windows-phone-70-handling-text-entry-screens/
Если у вас есть экран с несколькими элементами, вы можете рассмотреть возможность явного изменения макета для размещения меньшего пространства.
Ответ 2
Я не уверен, что есть простой способ изменить положение прокрутки при открытии клавиатуры. Хотя я могу придумать несколько обходных решений:
-
поместите все в scrollviewer, когда текстовые файлы focusevent называются прокруткой прокрутки, чтобы сохранить интересующий вас элемент с помощью ScrollToVerticalOffset()
-
используйте X-компонент трансляционного преобразования, чтобы перемещать текстовое поле на экране. Об этом можно прочитать в блоге Алекс Сороколетов.
Ответ 3
Я нашел эту прокрутку до конца всех комментариев в статье, приведенной выше:
Scrollviewer и многострочное текстовое поле Windows Phone
Это помогло мне лучше, чем статья Алекса.