当我使用SplitView和CommandBar时,我将CommandBar放在Page.BottomAppBar中,但CommandBar重叠了SplitView窗格。所以我将CommandBar移动到页面的内容(例如:Page command bar overlaps Splitview Pane)。它正在工作。
但这需要一个新问题。当键盘显示在页面中时,键盘与CommandBar重叠。我想在键盘显示时显示CommandBar。我该怎么办?
答案 0 :(得分:3)
我可以在这里给一个工作台,也许它有点粗鲁,但它可以解决你的问题。
由于软件键盘可见时Page.BottomAppBar
中的CommandBar不会受到影响,但它与SplitView窗格重叠,我们可以将CommandBar
保留在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;
}