当我使用SplitView 和CommandBar 时,我将CommandBar 放在Page.BottomAppBar 中,但是CommandBar 与SplitView Pane 重叠。所以我将 CommandBar 移动到页面的内容(例如:页面命令栏与 Splitview Pane 重叠)。它正在工作。
但这需要一个新问题。在显示键盘的页面中时,键盘与 CommandBar 重叠。我想在键盘显示时显示 CommandBar。我该怎么做?
当我使用SplitView 和CommandBar 时,我将CommandBar 放在Page.BottomAppBar 中,但是CommandBar 与SplitView Pane 重叠。所以我将 CommandBar 移动到页面的内容(例如:页面命令栏与 Splitview Pane 重叠)。它正在工作。
但这需要一个新问题。在显示键盘的页面中时,键盘与 CommandBar 重叠。我想在键盘显示时显示 CommandBar。我该怎么做?
我可以在这里给一个workground,也许它有点笨拙,但它可以解决你的问题。
由于在软键盘可见时CommandBar inPage.BottomAppBar
不会被隐藏,但它与SplitView Pane重叠,我们可以将其保留CommandBar
在Content中Grid
,但将其复制CommandBar
并放入其中Page.BottomAppBar
,同时首先使其折叠,例如像这样:
<Page.BottomAppBar>
<CommandBar x:Name="AppCommandBarCopy" Visibility="Collapsed">
<CommandBar.PrimaryCommands>
<AppBarButton Name="SaveCopy"
Icon="Save"
Label="Save"></AppBarButton>
<AppBarButton Name="ClearCopy"
Icon="ClearSelection"
Label="Clear"></AppBarButton>
</CommandBar.PrimaryCommands>
</CommandBar>
</Page.BottomAppBar>
然后在后面的代码中,我们可以检测软键盘是否可见,如果键盘可见,则显示这个副本;如果没有,请隐藏此副本,例如此处:
public SplitViewCommandBarKeyboard()
{
this.InitializeComponent();
InputPane.GetForCurrentView().Showing += OnKeyboardShowing;
InputPane.GetForCurrentView().Hiding += OnKeyboardHidding;
}
private void OnKeyboardHidding(InputPane sender, InputPaneVisibilityEventArgs args)
{
AppCommandBarCopy.Visibility = Visibility.Collapsed;
}
private void OnKeyboardShowing(InputPane sender, InputPaneVisibilityEventArgs args)
{
AppCommandBarCopy.Visibility = Visibility.Visible;
}