为什么 AppBar 在 windows surface pro 1 和 windows surface pro 4 中的行为不同?

Why AppBar behaviors differently in windows surface pro 1 and 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;
  }
}

然后我在与应用栏相同的页面顶部有一个文本框,一旦我开始在文本框中键入内容,就会显示软键盘。我有一些工作流程可以将 KeepBottomAppBarOpen 设置为 true。但是当我在文本框中键入时,KeepBottomAppBarOpen 为 false。在 Surface pro 1 中,一旦我开始在文本框中键入内容,就会显示软键盘并且应用栏会跳到软键盘上方。但是在surface pro 4中,一旦我开始在文本框中输入,软键盘就会显示,应用栏不会跳转,因为它在页面底部,软键盘会隐藏它。

这是由于 surface pro 1 和 surface pro 4 之间的差异而设计的吗?
在 Surface pro 1 中,我该怎么做才能让应用栏不跳到软键盘上方?

添加屏幕。 表面专业版 1:

Surface 专业版 4:

我个人认为这是设计使然。 而如果你不想让bar跳过软键盘,可以参考Amy在this thread.

中说的

当我们点击TextBoxs时,BottomAppBar会卡在屏幕键盘的顶部,解决方法是将AppBar放在Grid中而不是BottonAppBar。

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

我已经测试过了,没问题。希望对你有帮助。