Appbar背后的弹出窗口

当您希望应用扩展到全屏(包括状态栏和appbar)时,您必须执行以下操作:

var applicationView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); applicationView.SetDesiredBoundsMode(Windows.UI.ViewManagement.ApplicationViewBoundsMode.UseCoreWindow); 

然后,如果您想在应用栏或应用中的任何位置设置弹出按钮,它们将显示在应用栏后面:

               

结果 :

http://i.stack.imgur.com/oWAj9.png

列表视图中的项目上的弹出窗口也是如此。 它们将显示在appbar后面:

在此处输入图像描述

如何在appbar上显示弹出窗口?

我似乎无法解决我的问题(或者可以提供帮助的人)。 所以我这样做,如果它可以帮助某人:

              private void MenuFlyout_Opened(object sender, object e) { BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed; } private void MenuFlyout_Closed(object sender, object e) { BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Visible; } 

现在我的弹出窗口显示完全,因为没有更多的appbar。 对于mvvm列表视图项,我在行为动作中做到了:

                 public class OpenFlyoutAction : DependencyObject, IAction { public object Execute(object sender, object parameter) { // Show menu FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender); // sometimes the appbar is stuck behind the appbar, so hide the appbar (sender as FrameworkElement).GetFirstAncestorOfType().BottomAppBar.Visibility = Visibility.Collapsed; // show the appbar again when flyout is closed var flyout = FlyoutBase.GetAttachedFlyout((FrameworkElement)sender); EventHandler showBar = null; showBar = delegate (object s, object e) { (sender as FrameworkElement).GetFirstAncestorOfType().BottomAppBar.Visibility = Visibility.Visible; // unsubscribe handler: flyout.Closed -= showBar; }; flyout.Closed += showBar; return null; } }