2016-10-13 2 views
2

Ich erstelle einen Menüpunkt (Kontextmenü, wenn das keine Hilfe ist) mit:WPF-Menüelementverknüpfung. Seltsames Verhalten

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); 

Es mit einer Ausnahme sehr gut funktioniert. Egal, was CmdExitCanExecute zurückgibt, die Verknüpfung der Menüelemente ist IMMER ausgegraut. Beachten Sie, dass der Text ("Exit") wie vorgesehen funktioniert (ausgegraut, wenn CmdExitCanExecute false zurückgibt und schwarz, wenn der Wert true ist), nicht jedoch die Verknüpfung. Um es noch komplizierter zu machen: Die Tastenkombination funktioniert, wenn ich die Tastenkombination drücke. Was muss ich tun, damit die Verknüpfung die richtige Farbe zeigt? Das Menü wird angezeigt, wenn Sie mit der rechten Maustaste auf ein Taskleistensymbol klicken, aber das sollte nicht wichtig sein, oder?

+1

Sie haben die Antwort unten nicht akzeptiert ... haben Sie eine andere Lösung gefunden? Vielen Dank. –

Antwort

2

Ich vermute, dass dies der WPF-Standardstil funktioniert. Wenn Sie einen Menüeintrag tatsächlich deaktivieren, werden Sie feststellen, dass der Verknüpfungstext ein etwas helleres Grau aufweist. Die Verknüpfung für ein nicht deaktiviertes Element ist etwas dunkler grau, während der Menüelementtext schwarz ist. Der Unterschied ist subtil und verwirrend, aber ich denke, dass Ihr MenuItem korrekt funktioniert.

+0

Die seltsame Sache ist, dass Visual Studio oder Paint.NET beide in WPF sind und ein "normales" Verhalten haben, d. H. Ihre Abkürzungen haben erkennbare Farben, genau wie jede andere Desktop-Anwendung auf der Erde. Wenn das WPF-Team beschlossen hat, von dem abzuweichen, was für eine solche Entscheidung üblich ist, dann ... –