我使用以下方法创建一个菜单项(上下文菜单,如果有任何帮助):
MenuItem menExit = new MenuItem();
menExit.Header = "Exit"; // will be changed later
menExit.Command = UICommands.CmdExit;
menExit.CommandBindings.Add(new CommandBinding(UICommands.CmdExit, CmdExitExecute, CmdExitCanExecute));
menu.Items.Add(menExit);
除了一个例外,它运作良好。无论CmdExitCanExecute返回什么,菜单项快捷方式始终显示为灰色。请注意,文本(“退出”)按预期工作(当CmdExitCanExecute返回false时为灰色,而为true时为黑色)但快捷方式则不然。更复杂的是:当我按下组合键时,快捷键起作用。我需要做什么才能使快捷方式显示正确的颜色?通过右键单击托盘图标显示菜单,但这应该无关紧要,是吗?
答案 0 :(得分:2)
我怀疑这是WPF默认样式的工作原理。如果您实际禁用了菜单项,您会发现快捷方式文本的颜色略浅一些。非禁用项目上的快捷方式为略深的灰色,而菜单项目文本为黑色。 差异是微妙和令人困惑的,但我认为你的MenuItem工作正常。