Windows 10 移动版 - 无法隐藏状态栏(上下文中不存在状态栏)

Posted

技术标签:

【中文标题】Windows 10 移动版 - 无法隐藏状态栏(上下文中不存在状态栏)【英文标题】:Windows 10 Mobile - cannot hide status bar (StatusBar doesn't exist in context) 【发布时间】:2015-10-14 04:29:55 【问题描述】:

我正在尝试在我的 Windows 10 通用应用程序中隐藏状态栏。在 WP 8.1 中,我使用 StatusBar.GetForCurrentView().HideAsync(); 隐藏状态栏,但是这在我当前的项目(Monogame,Win10 UAP)中不起作用 - 我收到“在当前上下文中找不到状态栏”错误(是的,我是使用 Windows.UI.ViewManagement)。 我做错了什么,还是删除了这个删除 StatusBar 的选项?我应该如何在 W10M 中做到这一点? 提前致谢。

【问题讨论】:

【参考方案1】:

诀窍是您必须首先添加对 Microsoft Mobile Extension SDK 的引用。 那么代码如下:

StatusBar statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
await statusBar.HideAsync();

可以通过右键单击通用项目来添加引用。选择“添加参考”。在 Reference Manager 对话框中,选择左侧的“Windows Universal”。选择“Extensions”并勾选“Microsoft Mobile Extension SDK...”。

由于这是一个通用应用程序,它将在每台设备上运行,但该 API 仅在装有 Windows 10 的移动设备(又名手机)上可用。因此,在您实际调用之前,功能检测此 API 在运行时是否可用API。否则会在运行时抛出 TypeLoadException。

使用 Windows.Foundation.Metadata.ApiInformation 命名空间来确定 API 是否可用。 (例如方法 IsTypePresent() 。 我建议在这里使用 typeof 而不是 Strings,例如像这样:

var isStatusBarPresent = ApiInformation.IsTypePresent(typeof(StatusBar).ToString());

在此处了解有关自适应代码的更多信息:https://channel9.msdn.com/Series/A-Developers-Guide-to-Windows-10/08

【讨论】:

这至少不适用于最新版本的 SDK,因为在 .Net Native 编译之后 typeof(StatusBar) 不会像您期望的那样返回文字类型名称。 “typeof(StatusBar).FullName”会是更好的解决方案吗?

以上是关于Windows 10 移动版 - 无法隐藏状态栏(上下文中不存在状态栏)的主要内容,如果未能解决你的问题,请参考以下文章

无法使用xcode phonegap在ios中隐藏状态栏

Windows10隐藏开始菜单栏,改变菜单栏位置

win10家庭版任务栏合并后显示的是列表,怎么显示缩略图?

ios隐藏状态栏后向下移动ui视图

android为啥透明不能全屏?如何将状态栏给隐藏起来。

Android R隐藏状态栏->向下移动视图并出现一个黑色矩形