我在使用热键 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)
{ }
我只想要一些代码放在{}大括号内。
答案 0 :(得分:0)
如果您在WPF中查看ControlTemplate
MenuItem
,您会看到它使用带有PopUp
的{{1}}基元来显示菜单。
要手动触发ItemsControl
打开,您需要设置MenuItem
。
现在......我不记得PopUp.IsOpen = true;
上是否公开IsOpen
属性,您可能需要走可视树来查找对它的引用。
MenuItem
使用我写过的包装器(就像我之前的许多其他人一样)来快速浏览可视化树。部分内容如下。
MyVisualTreeHelper
HTH,