WP8.1 导航栏覆盖

WP8.1 Navigation Bar Overlay

我目前正在开发 windows phone 8.1 的应用程序并且我在使用软系统导航栏时遇到问题。

我可以隐藏栏,但我似乎找不到它是否可见。 要隐藏它,我可以使用:

ApplicationView.GetForCurrentView().SuppressSystemOverlays = true;

问题是有些 phone 有,有些没有。我需要确定它是否处于活动状态,以便我可以正确绑定 VirtualizingStackPanel 的高度。

谢谢,

据我所知,没有完美的方法来使用 none-hardware 导航栏,我认为您最好的选择是订阅 ApplicationView.VisibleBoundsChanged 事件,

所以基本上你需要做的是:

  1. ApplicationViewBoundsMode设置为UseCoreWindow,这样内容就会布局在核心phonewindow所占的区域:

    ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);
    
  2. 订阅 VisibleBoundsChanged 事件并为您处理 UI 处理程序中的更改:

    ApplicationView.GetForCurrentView().VisibleBoundsChanged += handler;
    

    //...

    private void handler(ApplicationView sender, object args)
    {
        //handle ui changes
    }