![](/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.