WPF启用/禁用控件

WPF启用/禁用控件,wpf,controls,Wpf,Controls,当我在WPF中禁用一个控件时,比如说一个菜单项 MenuItem aMenuItem = ... aMenuItem.IsEnabled = false; 菜单项中的文本仍处于活动状态,也就是说,当项目被禁用时,它不会像您预期的那样变灰 是否有一种简单的方法不仅可以用于菜单项,还可以用于任何WPF控件?是,使用命令。菜单项和按钮具有命令属性。命令是ICommand接口的一个实现,该接口有一个名为CanExecute的方法。当can execute返回true时调用,菜单项或按钮处于启用状态,否

当我在WPF中禁用一个控件时,比如说一个菜单项

MenuItem aMenuItem = ...
aMenuItem.IsEnabled = false;
菜单项中的文本仍处于活动状态,也就是说,当项目被禁用时,它不会像您预期的那样变灰


是否有一种简单的方法不仅可以用于菜单项,还可以用于任何WPF控件?

是,使用命令。菜单项和按钮具有命令属性。命令是ICommand接口的一个实现,该接口有一个名为CanExecute的方法。当can execute返回true时调用,菜单项或按钮处于启用状态,否则将灰显


您也可以将控件的不透明度设置为0.5,以获得“灰显”效果

我使用命令设置菜单项,当CanExecute方法中的设置为false时,它仍然不会灰显。谢谢,菜单上有你自己的风格吗?如果有,您可能会覆盖默认的灰显实现。当你点击应该变灰的菜单项时,命令的execute方法会被激活吗?非常感谢,我有一个全局样式,标记文本块,所以我可以更改应用程序中所有文本块的颜色。MenuItems的可视树中似乎有文本块。我不知道如何解决这个问题,所以我有两个世界中最好的,我可以改变所有的文本颜色,并确保他们是灰色的,当他们被禁用。我假设我必须为此编写一个以菜单项为目标的控件模板。谢谢