【问题标题】:WinRT AppBar changing on context (or ignoring right click)?WinRT AppBar 根据上下文更改(或忽略右键单击)?
【发布时间】:2012-11-24 21:00:35
【问题描述】:

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

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: windows-runtime contextmenu appbar


    【解决方案1】:

    你的想法是正确的。 AppBar 是您应该放置所有非必要和基于选择的命令的地方。

    准则herehere 建议应按如下方式排列:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多