2

当我使用SplitView 和CommandBar 时,我将CommandBar 放在Page.BottomAppBar 中,但是CommandBar 与SplitView Pane 重叠。所以我将 CommandBar 移动到页面的内容(例如:页面命令栏与 Splitview Pane 重叠)。它正在工作。

但这需要一个新问题。在显示键盘的页面中时,键盘与 CommandBar 重叠。我想在键盘显示时显示 CommandBar。我该怎么做?

4

1 回答 1

3

我可以在这里给一个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;
}
于 2016-09-12T07:01:11.543 回答