0

我想在我的应用程序中实现的与 Windows 在其启动屏幕上所做的相同。当您选择一个项目时,打开应用栏并显示更多项目。当您在未选择任何内容时仅打开 te appbar 时,请不要显示这些项目。

到目前为止一切都很好,它就像我想要的那样工作。但是有一些问题我无法解决。当您在启动屏幕上选择一个项目时,右键单击屏幕上的任何位置都无法关闭应用栏。您必须取消选择该项目。

我只是不知道如何禁用右键单击以关闭应用程序栏。因为那时我处于有一个选定项目但没有应用栏的状态。我不想要那个...

提前致谢!

4

3 回答 3

1

有一个属性叫IsSticky

这可以用来阻止你的 appbar 崩溃。

您拥有的另一个选择是挂钩Closed事件并强制它重新打开。

根据您提供的屏幕,即 Metro UI :) 我会说创建一个仅托管其他磁贴的页面。我在我的一个应用程序中做了类似的事情,看看 http://apps.microsoft.com/windows/en-gb/app/cineworld/7adfde16-33c3-4b51-b758-00366325288d

看看Coding4FunCallisto

于 2013-03-11T10:12:07.293 回答
1

设置 AppBar 属性IsSticky="true"并在您的 GridView/ListView 上处理事件RightTapped,并在事件处理程序中设置e.Handled = true;
这将阻止右键单击/滑动路由事件到达页面,并且不会关闭 AppBar。

于 2013-05-16T12:04:46.937 回答
0

您可以覆盖hide()appbar 的功能并将其替换为以下内容:

appBar.hide = function () {
        /// <signature helpKeyword="WinJS.UI.AppBar.hide">
        /// <summary locid="WinJS.UI.AppBar.hide">
        /// Hides the AppBar, if visible, regardless of other state
        /// </summary>
        /// </signature>
        // Just wrap the private one
        var listView = document.getElementById("yourListView").winControl;
        var count = listView.selection.count();

        if(count <1)
            this._hide();
}

这不是一个很好的解决方法,但它就像一个魅力:)

于 2013-06-15T21:47:01.553 回答