Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF中的键绑定_C#_Wpf_Key Bindings_Commandbinding - Fatal编程技术网

C# WPF中的键绑定

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中的修饰符,因此您可以在其他位置单独看到它

我是WPF新手,在我正在构建的应用程序中,我希望在按下alt键时显示主菜单,就像vista和windows 7中的windows资源管理器一样。我尝试过只使用修改器集的键绑定,但这似乎不起作用

到目前为止,代码如下:


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


有什么想法吗?

您是否尝试过将
属性设置为
“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}" />