WPF启用/禁用控件

The*_*ies 6 wpf controls

当我在WPF中禁用控件时,就像说菜单项一样

MenuItem aMenuItem = ...
aMenuItem.IsEnabled = false;
Run Code Online (Sandbox Code Playgroud)

MenuItem中的文本仍然处于活动状态,即当项目被禁用时,它不会显示为灰色.

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

Ara*_*and 7

是的,使用命令.MenuItems和Buttons具有命令属性.command是ICommand接口的一个实现,它有一个名为CanExecute的方法.如果在返回true时调用execute,则启用menutitem或按钮,否则显示为灰色.

MSDN命令概述

关于设置命令的简单教程

谷歌搜索 :)

  • 非常感谢,我有一个标记TextBlocks的全局样式,所以我可以更改应用程序中所有TextBlock的颜色.似乎MenuItems在其可视树中有TextBlocks.不知道如何解决这个问题,所以我可以在两个世界中做到最好,我可以更改所有文本颜色并确保它们在禁用时变灰.我假设我必须为此编写一个针对MenuItems的控件模板.谢谢 (2认同)