繁体   English   中英

显式设置不透明度后,如何通过IsEnabled重置WPF控件的默认不透明度切换?

[英]How to reset a WPF control's default opacity toggling via IsEnabled after setting opacity explictly?

当我禁用控件(按钮)时,它太暗了,很难阅读文本。

因此,我正在使用扩展方法将不透明度设置为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之间切换。 即使IsEnabled设置为false,它也会“卡住”为1.0(100%)。

设置不透明度后,以后如何重置控件以使其正常不透明度在1.0和0.35之间切换?

Opacity的更改是通过触发器完成的。 通过直接设置值,您将覆盖样式或触发器可能产生的任何值。 实际上,这不是执行此类操作的方法。 您应该使用自己的样式和触发器。

但是,您只需清除分配给Opacity的值,便可以实现所需的功能:

control.ClearValue(UIElement.OpacityProperty);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM