UWP应用程序如何全屏显示状态栏

本文关键字:显示 状态栏 何全屏 应用程序 UWP | 更新日期: 2023-09-27 18:03:24

更新1:更新图片和更多细节:

更新2:更改标题以更好地反映问题,因为导航栏不能像状态栏那样手动控制

我想在应用程序上覆盖状态栏并隐藏导航栏。
我通过使用以下命令实现了这一点:(这都在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客户端for WM"。我想实现我上面所尝试的,不仅是为了这个应用程序,也是为了我的教育。你可以在这里找到这个项目,如果你感兴趣Pokemon Go-UWP for WM

UWP应用程序如何全屏显示状态栏

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

如你所见,没有全屏模式,

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

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

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

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

在此模式下,应用程序不会占用状态栏或导航栏所遮挡的区域。
截图