【问题标题】:WPF enable/disable controlsWPF 启用/禁用控件
【发布时间】:2010-02-28 21:58:50
【问题描述】:

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

MenuItem aMenuItem = ...
aMenuItem.IsEnabled = false;

MenuItem 中的文本仍处于活动状态,也就是说,当项目被禁用时,它并没有像您期望的那样灰显。

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

【问题讨论】:

    标签: wpf controls


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      是的,通过使用命令。 MenuItems 和 Buttons 有一个命令属性。 Command 是 ICommand 接口的一个实现,它有一个名为 CanExecute 的方法。如果返回true,则调用何时可以执行菜单项或按钮已启用,否则将显示为灰色。

      MSDN Command overview

      nice simple tutorial on setting up commands

      google search :)

      【讨论】:

      • 我使用命令设置菜单项,但在 CanExecute 方法设置为 false 时,它​​仍然没有变灰。谢谢
      • 您的菜单项有自己的风格吗?如果你有你可能会覆盖默认的灰色实现。当您单击应该变灰的菜单项时,该命令的执行方法会触发吗?
      • 非常感谢,我有一个标记 TextBlocks 的全局样式,所以我可以更改应用程序中所有 TextBlocks 的颜色。似乎 MenuItem 在其视觉树中有 TextBlocks。不知道如何解决这个问题,所以我拥有两全其美的优势,我可以更改所有文本颜色并确保它们在禁用时变灰。我假设我必须为此编写一个以 MenuItems 为目标的控件模板。谢谢
      猜你喜欢
      • 2023-03-16
      • 2014-05-13
      • 1970-01-01
      • 2015-06-13
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 2021-01-09
      相关资源
      最近更新 更多