【发布时间】:2009-02-17 01:39:18
【问题描述】:
WPF ContextMenu 的默认行为是在用户右键单击时显示它。我希望 ContextMenu 在用户左键单击时显示。看起来这应该是ContextMenu 上的一个简单属性,但事实并非如此。
我对其进行了操纵,以便在代码隐藏中处理LeftMouseButtonDown 事件,然后显示上下文菜单。
我在我的项目中使用 MVVM,这意味着我将 DataTemplates 用于具有上下文菜单的项目。摆脱代码隐藏并找到一种使用 XAML 中的触发器或属性来显示上下文菜单的方法会更加优雅。
对这个问题有什么想法或解决方案吗?
【问题讨论】:
-
不幸的是,我认为没有针对此问题的唯一 XAML 解决方案。上下文菜单行为被嵌入到 FrameworkElement 中。
-
这与 Windows 中的标准背道而驰,您有充分的理由这样做吗?
-
这很好,也许我应该使用 ContextMenu 以外的东西来完成这项工作。它基本上是一个下拉菜单,当您单击该项目时出现,不是按钮,而是一种按钮。 ContextMenu 似乎是一个显而易见的选择,但也许这是错误的。
-
在此处查看我使用 Expression Blend 触发器的答案:stackoverflow.com/a/4917707/87912
标签: .net wpf xaml mvvm contextmenu