【问题标题】:WP8.1 Navigation Bar OverlayWP8.1 导航栏覆盖
【发布时间】:2016-01-09 16:59:43
【问题描述】:

我目前正在 windows phone 8.1 中开发应用程序,但我遇到了软系统导航栏的问题。

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

ApplicationView.GetForCurrentView().SuppressSystemOverlays = true;

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

谢谢,

【问题讨论】:

    标签: c# windows-phone-8.1


    【解决方案1】:

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

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

    1. ApplicationViewBoundsMode设置为UseCoreWindow,这样内容就会布局在手机核心窗口占据的区域:

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

      ApplicationView.GetForCurrentView().VisibleBoundsChanged += handler;
      

      //...

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

    【讨论】:

    • 非常感谢!我对问题进行了逆向工程。当我第一次启动应用程序时,我实际上将栏设置为 false。然后根据您建议的事件,如果布局保持相同的可见大小,那是因为没有软栏,否则我只是重新调整布局。谢谢!
    • 能有一个更完整的例子吗?它似乎对我不起作用。似乎无论手机或设置如何,每次启动应用程序时都会触发 VisibleBoundsChanged 事件。
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2021-05-08
    • 2018-05-13
    • 2016-11-18
    相关资源
    最近更新 更多