Подтвердить что ты не робот

Запретить прокрутку экрана, когда в WP7 отображается мягкая клавиатура?

Есть ли способ предотвратить перемещение экрана вверх, когда мягкая клавиатура отображается в приложении Windows Phone?

У меня есть текстовое поле, которое находится в верхней половине экрана, поэтому, когда отображается мягкая клавиатура, он не распространяется на текстовое поле. Однако, когда текстовое поле прослушивается, экран по-прежнему сдвигается.

Можно ли это предотвратить?

4b9b3361

Ответ 1

Я потратил довольно много времени на то, чтобы найти решение этого вопроса - в моем случае я хотел, чтобы заголовок страницы оставался в верхней части экрана, а не прокручивался, когда открывалась клавиатура.

Лучшее, что я нашел, это решение, описанное в приведенном ниже сообщении, которое использует изменения в формате TranslateTransform (который запускается при открытии/закрытии клавиатуры), чтобы изменить размер верхнего поля и, следовательно, место для доступного содержимого.

http://sorokoletov.com/2011/08/windows-phone-70-handling-text-entry-screens/

Если у вас есть экран с несколькими элементами, вы можете рассмотреть возможность явного изменения макета для размещения меньшего пространства.

Ответ 2

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

  • поместите все в scrollviewer, когда текстовые файлы focusevent называются прокруткой прокрутки, чтобы сохранить интересующий вас элемент с помощью ScrollToVerticalOffset()

  • используйте X-компонент трансляционного преобразования, чтобы перемещать текстовое поле на экране. Об этом можно прочитать в блоге Алекс Сороколетов.