C# WPF中的键绑定
我是WPF新手,在我正在构建的应用程序中,我希望在按下alt键时显示主菜单,就像vista和windows 7中的windows资源管理器一样。我尝试过只使用修改器集的键绑定,但这似乎不起作用 到目前为止,代码如下:C# WPF中的键绑定,c#,wpf,key-bindings,commandbinding,C#,Wpf,Key Bindings,Commandbinding,我是WPF新手,在我正在构建的应用程序中,我希望在按下alt键时显示主菜单,就像vista和windows 7中的windows资源管理器一样。我尝试过只使用修改器集的键绑定,但这似乎不起作用 到目前为止,代码如下: 我还希望菜单在焦点丢失时消失 有什么想法吗?您是否尝试过将键属性设置为“LeftAlt”或“righalt”?Key属性的类型为System.Windows.Input.Key枚举,它没有“Alt”值 Alt用作keypostation中的修饰符,因此您可以在其他位置单独看到它
我还希望菜单在焦点丢失时消失
有什么想法吗?您是否尝试过将
键
属性设置为“LeftAlt”
或“righalt”
?Key
属性的类型为System.Windows.Input.Key
枚举,它没有“Alt”
值
Alt
用作keypostation
中的修饰符,因此您可以在其他位置单独看到它。但是,在键枚举中,它专门有左键和右键的实例
您很可能需要两个绑定,每个alt键一个。尝试在
菜单上设置IsMainMenu=“True”
。这是你想要的行为吗?我想要的答案可以在这里找到:
感谢大家的帮助。尝试设置Modifiers=“Alt”
和Key=“LeftAlt”
:
免责声明:这不是试图回答,因为用户已经找到了解决方案。这只是提供有关该主题的附加信息
如果有人想知道@jamier尝试此KeyBinding
失败的原因,可以在MSDN的页面上找到答案:
除功能键和数字键盘键外,有效的键手势
必须仅包含一个键和一个或多个修改键
因此,在键绑定中,一个修饰符本身不能用作有效的手势
从代码中设置该修饰符会产生一个系统。不支持异常
带有消息“Alt+LeftAlt”键和修饰符组合不支持KeySpirate。
在.NET Framework 4中
<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>
<KeyBinding Key="LeftAlt" Modifiers="Alt" Command="{x:Static local:MainWindow.ShowMenuCommand}" />