Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 8.1 如何在Windows Phone 8.1(WinJS)应用程序中隐藏应用程序栏?_Windows 8.1_Windows Phone 8.1_Winjs - Fatal编程技术网

Windows 8.1 如何在Windows Phone 8.1(WinJS)应用程序中隐藏应用程序栏?

Windows 8.1 如何在Windows Phone 8.1(WinJS)应用程序中隐藏应用程序栏?,windows-8.1,windows-phone-8.1,winjs,Windows 8.1,Windows Phone 8.1,Winjs,我在default.html中声明了一个AppBar,以便在整个应用程序中使用 在某些页面上,我需要显示应用程序栏,在某些页面上,我需要隐藏应用程序栏 到目前为止,我试图找到隐藏和显示AppBar的方法的努力遇到了死胡同 MSDN上的文档说明: 因此,该方法仅隐藏Windows的AppBar,而不隐藏Windows Phone项目的AppBar 我还尝试将display:none作为CSS样式,但没有效果 任何帮助都将不胜感激:)您必须使用C#来完成,您只需键入。。(如果您的appbar被称为

我在default.html中声明了一个AppBar,以便在整个应用程序中使用

在某些页面上,我需要显示应用程序栏,在某些页面上,我需要隐藏应用程序栏

到目前为止,我试图找到隐藏和显示AppBar的方法的努力遇到了死胡同

MSDN上的文档说明:

因此,该方法仅隐藏Windows的AppBar,而不隐藏Windows Phone项目的AppBar

我还尝试将
display:none
作为CSS样式,但没有效果


任何帮助都将不胜感激:)

您必须使用C#来完成,您只需键入。。(如果您的appbar被称为ApplicationBar

这将立即隐藏AppBar!如果您希望您的HTML页面执行此操作,它将非常复杂


干杯

我想您可以在代码中尝试以下步骤

  • 为appbar添加事件侦听器
  • 在显示前的代码中,检查具有特定页面名称的条件 比如:if(WinJS.Navigation.location.match(“test.html”))
  • 根据您的条件,您可以使用appbar

  • 祝你一切顺利

    AppBar.Hide隐藏Windows Phone上的辅助命令栏,而不是主AppBar。如果希望整个AppBar消失,那么这不是正确的属性

    最简单的方法是在要显示AppBar的页面上声明AppBar,并在不需要它的页面上保留它,但应该能够通过在不需要它的页面上禁用AppBar来隐藏它

    我刚刚在中修改了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函数。

    我不确定Winjs是否正确,但在C中,当设置
    BottomAppBar=null
    时,您肯定可以隐藏AppBar。也许你可以试试类似的方法。是的,我知道如何在C#中做到这一点。但我的要求是WinJS。我完全不知道如何做这么简单的事情。谢谢,但我想把这个给WinJS。AppBar控件在WinJS中是另一个控件,上面的代码对WinJS控件不起作用。将AppBar
    disabled
    属性设置为
    true
    似乎会隐藏它,但将其设置为
    false
    不会再次显示它。因此,一旦设置AppBar
    disabled
    属性,我无法为应用程序中的任何其他页面启用它。可以切换“禁用”属性。如果派生页面卸载方法,只需写入disable=false即可。。根据您的需要,在ready函数中设置true或false。
    返回缓存页面时,可能不会调用PageControl的ready函数
    是否有关于此主题的书面说明?我在堆栈中来回导航时遇到问题,我正在寻找有关导航内部的更多信息?
    // 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;
    }