在UWP中隐藏状态栏

时间:2015-12-16 05:40:18

标签: windows-10 uwp windows-10-mobile

我使用下面的代码来隐藏UWP中的状态栏。当我在计算机中以开发模式运行应用程序时,状态栏不会显示在Windows Phone中。我在Windows应用商店中部署了应用,在下载应用后,我看到状态栏出现在我的应用中。

这是我的代码:

var isAvailable = Windows.Foundation.Metadata.ApiInformation.IsTypePresent(typeof(StatusBar).ToString());
   if (isAvailable)
       hideBar();

async void hideBar()
{
   StatusBar bar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
   await bar.HideAsync();
}

问题是,为什么上述代码不能在Windows应用商店中运行? 此外,我在Windows应用商店中有我的应用App link的链接,但是当我在Windows商店中搜索确切的关键字时,我的应用程序没有显示在Windows商店中,但点击链接会出现我的应用程序在窗口商店

谢谢!

5 个答案:

答案 0 :(得分:10)

检查[a, aa, ąą, ąąą, c, ėėė, ęęę, vv, zz, ž, žžž] ,而不是类型Contract,对我来说很好。

StatusBar

答案 1 :(得分:2)

您必须使用FullName代替ToString()

...
ApiInformation.IsTypePresent(typeof(StatusBar).FullName);
...

答案 2 :(得分:2)

此代码无法正常工作,因为.Net Native编译(Store确实)类型为(StatusBar)。 ToString()不会返回您期望的文字类型名称,但会返回类似" EETypeRVA:0x00021968"。改为使用文字字符串(你不打算重命名StatusBar,对吗?;)或使用IsApiContractPresent或typeof(StatusBar)。 FullName (如已经建议的那样)。 附:无需发布即可重现相同的问题,只需使用发布配置即可运行。

答案 3 :(得分:1)

当您在Release中使用.NET Native工具链进行编译时,类型信息会被丢弃,因此您不会传递您认为自己正在传递的字符串吗?也许你可以尝试硬编码完整的类型名称?

答案 4 :(得分:0)

在Windows 10中,命令是 Window.Current.SetTitleBar(NULL);