2016-10-13 6 views
2

создать пункт меню (контекстное меню, если это какой-либо помощи) с помощью:WPF menuitem ярлык. Странное поведение

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 и black, когда true), но не так. Чтобы усложнить ситуацию: ярлык работает, когда я нажимаю комбинацию клавиш. Что мне нужно сделать, чтобы ярлык отображал правильный цвет? Меню отображается щелчком правой кнопки мыши на значке в трее, но это не имеет значения, не так ли?

+1

Вы не приняли ответ ниже ... нашли ли вы другое решение? Спасибо. –

ответ

2

Я подозреваю, что это стиль WPF по умолчанию. Если вы фактически отключите пункт меню, вы обнаружите, что текст ярлыка немного светлее серый. Ярлык на объекте без функции немного темнее серого, в то время как текст пункта меню черный. Разница тонкая и запутанная, но я думаю, что ваш MenuItem работает правильно.

+0

Странно то, что Visual Studio или Paint.NET находятся в WPF и имеют «нормальное» поведение, т. Е. Их ярлыки имеют видимые цвета, как и все другие приложения для настольных систем на Земле. Если команда WPF решила отказаться от того, что является общим для принятия такого решения, хорошо ... –

Смежные вопросы