如何隐藏Windows Phone 8.1(WinJS)应用程序中的应用程序栏?
我在default.html中声明了一个单独的AppBar,以便在我的应用程序中使用。如何隐藏Windows Phone 8.1(WinJS)应用程序中的应用程序栏?
在一些页面上,我需要显示应用栏和一些需要隐藏AppBar的页面。
到目前为止,我的努力找到隐藏和显示AppBar的方法已经遇到了死胡同。
在MSDN文档说:
AppBar.hide method : Hides the app bar on Windows and the secondary command menu on Windows Phone.
因此,该方法仅隐藏AppBar为Windows而不是一个Windows Phone的项目。
我也试着给display:none
做CSS样式,没有任何效果。
任何帮助将不胜感激:)
AppBar.Hide隐藏Windows Phone上的辅助命令栏,而不是主AppBar。如果你想让整个AppBar消失,那么这不是合适的属性。
最简单的方法是在要显示它的页面上声明AppBar,并将它放在不需要的页面上,但是应该可以通过在页面上禁用AppBar来隐藏它你不想要它。
我只是修改了HTML AppBar control sample的appbar,commands.js如下文件和appbar隐藏和显示我点击隐藏和显示按键:
// These functions are used by the scenario to show and hide elements
function doShowItems() {
document.getElementById('commandsAppBar').winControl.disabled = false;
//document.getElementById('commandsAppBar').winControl.showCommands([cmdFavorite, cmdCamera]);
document.getElementById('scenarioShowButtons').disabled = true;
document.getElementById('scenarioHideButtons').disabled = false;
}
function doHideItems() {
document.getElementById('commandsAppBar').winControl.disabled = true;
//document.getElementById('commandsAppBar').winControl.hideCommands([cmdFavorite, cmdCamera]);
document.getElementById('scenarioHideButtons').disabled = true;
document.getElementById('scenarioShowButtons').disabled = false;
}
我也与单页导航证实模型在两页之间导航。如果你没有看到appbar隐藏并显示禁用和启用时,请确保你正在调用代码来禁用/启用appbar。返回到缓存页面时,PageControl的ready函数可能不会被调用。
好的答案!作品!!!解决方案非常简单,但我们无法弄清楚。 – 2014-09-30 20:17:19
'当返回到缓存页面时,可能不会调用PageControl的ready函数'是否有任何关于此主题的内容?我有麻烦在我的堆栈中来回导航,并且正在寻找关于导航内部的更多信息? – 2015-01-13 13:55:48
你必须用C#这样做,你可以简单地只需键入..(如果你的appbar被称为应用程序任务栏)
ApplicationBar.Visibility = Visibility.Collapsed;
这将立即隐藏AppBar!如果你想让你的HTML页面执行这个动作,它会非常复杂。
干杯
谢谢,但我想为WinJS这个。 AppBar控件在WinJS中是不同的,上面的代码段不适用于WinJS控件。 – 2014-09-29 08:39:36
我想你可以试试下面代码中的一步。
- 为appbar beforeshow
- 添加事件侦听器在之前节目请与特定的页面名称 就像一个条件代码:如果(WinJS.Navigation.location.match( “test.html的”))
- 根据你的条件你可以Disable你的appbar。
一切顺利.. !!
将AppBar的'disabled'属性设置为'true'似乎隐藏了它,但将其设置为'false'不会再显示它。 – 2014-09-29 16:55:46
因此,一旦我设置AppBar'禁用'属性,我永远不能启用它的应用程序中的任何其他页面。 – 2014-09-29 16:56:35
可以切换禁用属性。如果你派生页面卸载方法只需写入disable = false ..并根据您的需要准备好功能使真或假.. – 2014-09-30 05:52:28
我不确定Winjs,但在C#中,当您设置BottomAppBar = null时,您肯定可以隐藏AppBar。也许你可以尝试类似的东西。 – Romasz 2014-09-28 19:40:14
是的,我知道如何在C#中做到这一点。但我的要求是WinJS。我完全沉迷于如何做这样一件简单的事情。 – 2014-09-29 08:41:04