0

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

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

有人告诉我 PopupMenu 在 WinRT 中不好,我应该使用 AppBar。

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

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

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

那么我可以在不同的上下文中更改 AppBar 的布局(因为似乎微软希望我们将 AppBar 用作没有上下文功能的上下文菜单)还是只在我需要时通过代码显示它?

最好有一个带有一些应用程序范围选项的 TopAppBar 和一个仅用于 ListView 的项目上下文菜单的 BottomAppBar。

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

4

1 回答 1

3

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

此处此处的指南建议应按以下方式安排它们:

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

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

如果您使用的是 MVVM,您可以将您的视图模型属性绑定到上面提到的所有Button属性AppBar

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

于 2012-11-25T07:48:01.503 回答