更新 1:更新了图片和更多详细信息:
更新2:更改标题以更好地反射(reflect)问题,因为导航栏无法像状态栏一样手动控制
好吧,我想在应用程序上覆盖状态栏并隐藏导航栏。
我通过使用以下方法实现了这一点:(这一切都在 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();
图片:
所以我需要一种方法来允许状态栏全屏显示。
这个应用程序是 git 上的一个开源项目“Pokemon Go Client for WM”。我想实现我上面尝试的目标,不仅是为了这个应用程序,也是为了我的教育。如果您有兴趣,可以在这里找到该项目Pokemon Go-UWP for WM
最佳答案
在 Windows Mobile 上,全屏应用程序没有状态栏和导航栏。并且在全屏模式下无法显示状态栏。正如@Raymond 的建议,您可以绘制自己的状态栏,例如在应用程序的右上角添加电池电量和日期时间信息。但这可能并不容易实现。
如您所见,没有全屏模式,
the app is still something like full screen but now the nav bar just overlays the app.
所以我认为你也可以隐藏导航栏来实现你想要的。虽然,我们无法以编程方式隐藏导航栏,但用户可以从屏幕底部向上滑动来隐藏/显示它。您可以在应用中添加一些提示来提示用户隐藏导航栏。
Screenshot
或者您可以将所需的边界模式设置为UseVisible,如下所示,将窗口的内容布置在可见区域内。
ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible);
在此模式下,应用程序不会占用状态栏或导航栏被遮挡的区域。
Screenshot
关于c# - UWP应用如何全屏显示状态栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39070418/