我想在我的应用程序中实现的功能与Windows在启动屏幕上的功能相同。选择项目时,请打开appbar并显示更多项目。如果您在未选择任何内容时打开te appbar,请不要显示这些项目。
到目前为止这么好,它的工作方式就像我希望的那样。但是有些问题我无法解决。当您在启动屏幕上选择项目时,右键单击屏幕上的任何位置时都无法关闭te appbar。您必须取消选择该项目。
我无法弄清楚如何禁用右键单击以关闭appbar。因为那时我处于一个状态,我有一个选定的项目,但没有appbar。我不希望......
提前致谢!
答案 0 :(得分:1)
有一个名为IsSticky
的属性这可以用来阻止你的appbar崩溃。
您拥有的另一个选择是挂钩Closed事件并强制重新打开。
基于您提供的屏幕,也就是Metro UI :)我会说创建一个只托管其他图块的页面。 我在我的一个应用程序中做了类似的事情,看一看 http://apps.microsoft.com/windows/en-gb/app/cineworld/7adfde16-33c3-4b51-b758-00366325288d
答案 1 :(得分:1)
设置AppBar属性 IsSticky =“true”并在GridView / ListView上处理事件 RightTapped ,并在事件处理程序集中设置 e.Handled =真; 强>
这将阻止右键单击/滑动路由事件到达页面,并且不会关闭AppBar。
答案 2 :(得分:0)
您可以覆盖appbar的hide()
功能,并将其替换为以下内容:
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();
}
这不是一个很好的解决方法,但它就像一个魅力:)