WinRT AppBar改变上下文(或忽略右键单击)?

时间:2012-11-24 21:00:35

标签: windows-runtime contextmenu appbar

我正在将桌面WPF应用程序移植到WinRT,我面临一个小问题。

我有一个ItemsControl,每个项目都有一个上下文菜单,用于删除/编辑项目。

我被告知PopupMenu在WinRT方面不好用,我应该使用AppBar。

我认为我做错了什么或者我误解了。

我认为我可以将这些选项放在AppBar上,当我选择一个元素时,弹出栏并点击我需要的地方。

问题是当我右键点击我的应用程序的任何部分时,AppBar会出现,这样按钮就会显示所选的项目。

那么我可以在不同的上下文中更改AppBar的布局(因为看起来Microsoft希望我们使用AppBar作为没有上下文功能的上下文菜单)或者只在需要时通过代码显示它吗?

将TopAppBar与一些应用程序范围的选项和BottomAppBar一起用于ListView的项目上下文菜单会很好。

或许我正在做所有这些错误,我必须使用另一种方法在Listview的项目上添加额外的选项。

1 个答案:

答案 0 :(得分:3)

你正在考虑这个问题。 AppBar是您应该放置所有非必要和基于选择的命令的地方。

指南herehere建议将其排列如下:

  • 导航命令应位于TopAppBar
  • 与选择相关的命令应位于BottomAppBar
  • 的左侧
  • 其他页面特定命令应位于BottomAppBar
  • 的右侧

只有在选择了该命令的相关项目时,才应显示上下文命令。为此,您应相应地设置Visibility这些命令。当选择了包含上下文命令的项目时,AppBar也应自动打开。您可以通过设置其IsOpen属性以编程方式执行此操作。您还应通过IsSticky属性将其设置为粘性模式。

如果您正在使用MVVM,则可以将viewmodel属性绑定到上面提到的所有ButtonAppBar属性。

WinRT XAML Toolkit中有一个CustomAppBar控件。我自己还没有使用它,但它有一些额外的功能可能对你的情况有用。