![](/img/trans.png)
[英]WPF What is the difference between setting the background to transparent and setting opacity on the control?
[英]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.