当我禁用控件(按钮)时,它太暗,以至于很难阅读文本。
所以我使用扩展方法将不透明度设置为1.0(100%),以便即使在禁用时也可以轻松读取:
public static void IsEnabledSpecial(this System.Windows.UIElement control, bool isEnabled) {
control.IsEnabled = isEnabled;
control.Opacity = 1.0; // This makes a disabled control more readable
}
通常,当没有为WPF控件明确设置不透明度时,它在控件启用时显示为1.0(100%),而在禁用控件时则为0.35(35%)。
一旦我使用扩展方法显式设置不透明度,当我在没有扩展方法的情况下设置IsEnabled 时,控件此后不再在1.0和0.35之间切换。它被“卡住”在1.0(100%),即使IsEnabled设置为false;
设置不透明度后,如何在以后重置控件以使其正常不透明度在1.0和0.35之间切换?
答案 0 :(得分:0)
Opacity
的更改正在通过触发器完成。通过直接设置值,您将覆盖样式或触发器可能产生的任何值。这真的不是做这种事情的方法。你应该使用自己的风格和触发器。
但是,您可以通过清除分配给Opacity
的值来实现您想要的效果:
control.ClearValue(UIElement.OpacityProperty);