将热键分配给MenuItem(文件)以删除它

时间:2010-07-06 10:16:28

标签: xaml c#-4.0

我在使用热键 Alt + F 下拉文件菜单时遇到问题。如果 Alt 被按下并释放后跟 F ,我已经成功地删除了它,打开菜单但按下f并没有做到这一点。这是我正在使用的代码。

< Menu Name="File_Menu" Background="LightGray">

< MenuItem Header="_File" Background="LightGray" Name="File_FileMenu" > 

在文件开头使用下划线,首先按下并释放 Alt 然后 F

打开菜单

当两个键被按在一起时,我想以某种方式丢弃文件菜单..

这是我之前用来分配热键的代码

KeyGesture keyGestureAltF = new KeyGesture (Key.F, ModifierKeys.Alt);
CommandBinding commandAltFBinding = new CommandBinding (CustomCommands.commandAltF, CommandBinding_FileMenu);
CustomCommands.commandAltF.InputGestures.Add (keyGestureAltF);
this.CommandBindings.Add (commandAltFBinding);

private void CommandBinding_FileMenu(object sender,ExecutedRoutedEventArgs e)
{ }

我只想要一些代码放在{}大括号内。

1 个答案:

答案 0 :(得分:0)

如果您在WPF中查看ControlTemplate MenuItem,您会看到它使用带有PopUp的{​​{1}}基元来显示菜单。

要手动触发ItemsControl打开,您需要设置MenuItem

现在......我不记得PopUp.IsOpen = true;上是否公开IsOpen属性,您可能需要走可视树来查找对它的引用。

MenuItem使用我写过的包装器(就像我之前的许多其他人一样)来快速浏览可视化树。部分内容如下。

MyVisualTreeHelper

HTH,