【发布时间】:2021-01-09 11:58:09
【问题描述】:
它发生在我所有的 WPF 应用程序中,并且 Visual Studio 2019(绝对基于 WPF)也表现出这种奇怪的行为:
只需在解决方案资源管理器中右键单击某个项目,同时按住 Control 键,您应该会注意到,如果您继续按住 Control 修饰符,突出显示的项目将间歇性地工作。
起初我认为网格和列表控件仍在捕获用于项目选择的修饰键,但这个问题也发生在简单控件(如标准按钮)上的上下文菜单中。
有没有办法解决这个问题?
这是一个带有 wpf 应用程序上下文菜单的 gif。首先我正常移动鼠标,然后用 Ctrl 按住:
如您所见,出现故障(未突出显示菜单项)。
【问题讨论】:
-
上下文菜单由 Windows 提供,而不是 WPF。按下 Ctrl 时我没有看到任何区别。
-
持有
Ctrl并查看我的 wpf 应用程序中的上下文菜单,我可以确认菜单项可以在没有突出显示的情况下被鼠标悬停,这看起来很难看。我不知道,因为在使用菜单时我永远不会持有Ctr。Alt将关闭菜单。Shift有同样的问题。为什么需要菜单修饰符?改为创建 2 个菜单项。 -
感谢您发布显示问题的 gif。我很高兴我不是唯一一个看到它发生的人。我需要为更高级的用户提供带有特殊命令的第二个菜单。在我看来,右键单击时按下修饰键并不是一个不合理的期望。
-
在我看来,在右键单击时按下修饰键并不是一个不合理的期望。 不确定这是否正确。您通常有两种用户,他们要么专注于键盘,要么专注于鼠标。在绘图或缩放时,您可以组合这两种类型的输入,但是将这种组合行为强加给高级用户对用户来说不是很友好。最好根据用户的级别(初级高级)来定义菜单项。例如,通过设置或商业计划(社区 专业)。
-
我也可以使用基本的
Menu控件重现有趣的行为。当您按住Ctrl或Shift键时,您无法可靠地在主菜单标题之间切换。我碰巧同意@Funk 和@Sinatr,但在上下文菜单上使用修饰键似乎不是与 UI 交互的正常方式。
标签: c# wpf user-interface contextmenu modifier-key