4

我是 WPF 新手,在我正在构建的应用程序中,我想在按下 alt 键时显示主菜单,就像 vista 和 Windows 7 中的 Windows 资源管理器一样。我尝试使用仅带有修饰符的键绑定设置,但这似乎不起作用。

到目前为止,代码如下:

<Window.CommandBindings>
    <CommandBinding Command="{x:Static local:MainWindow.ShowMenuCommand}"
                        CanExecute="ShowMenuCommand_CanExecute"
                        Executed="ShowMenuCommand_Executed"/>
</Window.CommandBindings>
<Window.InputBindings>
    <KeyBinding Key="Alt" Command="{x:Static local:MainWindow.ShowMenuCommand}" />
</Window.InputBindings>

我还希望菜单在失去焦点时消失。

有任何想法吗?

4

5 回答 5

2

我正在寻找的答案可以在这里找到:

http://www.stackoverflow.com/questions/1218394/how-can-i-toggle-the-main-menu-visibility-using-the-alt-key-in-wpf

感谢大家的帮助。

于 2010-07-07T18:12:23.720 回答
2

免责声明:这不是一个答案的尝试,因为用户已经找到了解决方案。这只是为了提供有关该主题的其他信息。

对于任何想知道为什么@jamier 的尝试KeyBinding不起作用的人,可以在 MSDN 上的KeyBindingClass页面中找到答案:

除功能键和数字小键盘键外,有效键KeyGesture必须恰好包含一个 Key 和一个或多个ModifierKeys

因此,一个修饰符本身不能用作 aGesture中的有效值KeyBinding

于 2013-10-31T20:54:27.020 回答
1

您是否尝试将Key属性设置为"LeftAlt"or "RightAlt"?该Key属性是System.Windows.Input.Key枚举类型,没有"Alt"值。

Alt在 a 中用作修饰符KeyGesture,这就是为什么您在其他地方单独看到它的原因。但是,在 Key 枚举中,它专门具有左右 Alt 键的实例。

您很可能必须有两个绑定,每个 alt 键一个。

于 2010-02-15T20:42:30.950 回答
0

尝试IsMainMenu="True"在您的Menu控件上进行设置。这会给你想要的行为吗?

于 2010-02-16T01:29:54.773 回答
0

尝试设置Modifiers="Alt"Key="LeftAlt"

<KeyBinding Key="LeftAlt" Modifiers="Alt" Command="{x:Static local:MainWindow.ShowMenuCommand}" /> 
于 2012-06-18T12:28:20.243 回答