UWP app如何在全屏显示状态栏?

时间:2016-08-22 01:52:11

标签: c# windows uwp windows-10-universal

更新1:更新了图片和更多详细信息:

更新2:更改了tittle以更好地反映问题,因为导航栏无法像状态栏那样手动控制

好的,我想覆盖应用上的状态栏并隐藏导航栏 我通过使用:(这都在app.xaml.cs中)

来实现这一点
    public override async Task OnInitializeAsync(IActivatedEventArgs args)
    {

        //this allows nav bar and status bar to overlay the app
        ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);

        //this hides nav bar and status bar
        ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
    {

所以,如果我发表评论

ApplicationView.GetForCurrentView().TryEnterFullScreenMode(); 

该应用程序仍然像全屏,但现在导航栏只是覆盖应用程序。而不是全屏行为(我注意到)它只是常规导航栏,所以需要全屏。但是在全屏模式下,无论我在应用程序中的哪个位置调用它,以下代码都不会显示状态栏。

var statusBar = StatusBar.GetForCurrentView();
await statusBar.ShowAsync();

图片:

使用全屏线:App / Code

没有全屏线:App / Code

所以我需要一种方法来允许状态栏全屏显示。

这个应用程序是git上的一个开源项目“Pokemon Go Client for WM”。我想实现它不仅仅是为了这个应用程序,而是为了我的教育。如果您有兴趣Pokemon Go-UWP for WM

,可以在这里找到该项目

1 个答案:

答案 0 :(得分:2)

在Windows Mobile上,全屏应用没有状态栏,也没有导航栏。当状态栏处于全屏模式时,无法显示状态栏。正如@ Raymond建议的那样,您可以绘制自己的状态栏,例如在应用程序的右上角添加电池电量和日期时间信息。但这可能不容易实现。

正如您所见,没有全屏模式,

  

该应用程序仍然像全屏,但现在导航栏只是覆盖了应用程序。

所以我认为你也可以隐藏导航栏来实现你想要的。我们不能以编程方式隐藏导航栏,但是用户可以从屏幕底部向上滑动以隐藏/显示它。您可以在应用中添加一些提示,以提示用户隐藏导航栏 Screenshot

或者您可以将所需的边界模式设置为 UseVisible ,如下所示,在可见区域内布置窗口的内容。

ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible);

在此模式下,应用程序不会将区域遮挡状态栏或导航栏 Screenshot