簡體   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