Почему AppBar ведет себя по-разному в Windows Surface Pro 1 и Windows Surface Pro 4?

Моя панель приложения определена так:

<AppBar x:Name="MyBottomBar" IsSticky="True" IsOpen="True" Closed="MyBottomBar_Closed" SizeChanged="MyBottomBar_SizeChanged">

private void MyBottomBar_Closed(object sender, object e)
{
  if (!this.BottomAppBar.IsOpen && KeepBottomAppBarOpen)
  {
      this.BottomAppBar.IsOpen = true;
  }
}

Затем у меня есть TextBox в верхней части той же страницы, что и панель приложения, как только я начинаю печатать в текстовом поле, отображается программная клавиатура. У меня есть несколько рабочих процессов, чтобы установить для KeepBottomAppBarOpen значение true. Но когда я набираю текстовое поле, KeepBottomAppBarOpen имеет значение false. В Surface Pro 1, как только я начну печатать в текстовом поле, отобразится программная клавиатура, и панель приложения прыгнет над программной клавиатурой. Но в Surface Pro 4, как только я начну печатать в текстовом поле, отображается программная клавиатура, а панель приложения не прыгает, и, поскольку она находится внизу страницы, она скрывается программной клавиатурой.

Это из-за разницы между Surface Pro 1 и Surface Pro 4?
Что я могу сделать, чтобы панель приложения не перепрыгивала над мягкой клавиатурой в Surface Pro 1?

Добавьте экраны. Поверхность Pro 1: введите описание изображения здесь

Поверхность Pro 4: введите описание изображения здесь

1 ответ

Решение

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

Когда мы нажимаем на TextBoxs, BottomAppBar прикрепляется к верхней части экранной клавиатуры, решение состоит в том, чтобы поместить AppBar в Grid вместо BottonAppBar.

<Grid>
    <AppBarButton VerticalAlignment="Bottom">
       <TextBox Text="AppBar"/>
    </AppBarButton>
    <TextBox VerticalAlignment="Center" Text="Hola"/>
</Grid>

Я проверил это, и он работает нормально. Надеюсь, это будет полезно.

Другие вопросы по тегам