Почему 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?
1 ответ
Лично я думаю, что это дизайн. И если вы не хотите, чтобы панель перепрыгивала через программную клавиатуру, вы можете сослаться на то, что сказала Эми в этой теме.
Когда мы нажимаем на TextBoxs, BottomAppBar прикрепляется к верхней части экранной клавиатуры, решение состоит в том, чтобы поместить AppBar в Grid вместо BottonAppBar.
<Grid>
<AppBarButton VerticalAlignment="Bottom">
<TextBox Text="AppBar"/>
</AppBarButton>
<TextBox VerticalAlignment="Center" Text="Hola"/>
</Grid>
Я проверил это, и он работает нормально. Надеюсь, это будет полезно.