Когда я выключаю элемент управления (кнопка), он настолько темный, что очень трудно прочитать текст.Как сбросить прозрачность прозрачного элемента управления WPF через IsEnabled после непрозрачности установки прозрачности?
Так я использую метод расширения для установки непрозрачности до 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%), когда элемент управления отключен.
После того, как я явно установил непрозрачность с использованием метода расширения, управление после этого перестает переключаться между 1.0 и 0.35, когда я устанавливаю IsEnabled без метода расширения. Он «застревает» на 1.0 (100%), даже если IsEnabled установлен в false;
После того, как я установил непрозрачность, как я могу позже сбросить элемент управления, чтобы сделать нормальную непрозрачность между 1.0 и 0.35?
Почему не просто определить стиль для управления с триггером, чтобы установить степень прозрачности при управлении выключен? – Dennis
@ Dennis: я не могу использовать стили/триггеры, потому что иногда мне нужно, чтобы непрозрачность была яркой при отключении (так что вы можете ее прочитать), и иногда мне нужно, чтобы она была темной при отключении - я меняю текст на кнопке как способ индикации статуса. Например, я отключу кнопку и скажу «Ожидание выполнения задания ...», а затем снова включите кнопку, когда задание будет завершено. – nb1forxp
Еще вы должны сделать это в XAML со стилем, вам не хватает части ViewModel в вашем дизайне. Где вы привязываетесь к некоторому свойству IsEnabled = {BInding IsWaiting}, а затем вводите триггер в стиле, чтобы реагировать на отключенное изменение или использовать datatrigger для IsWaiting –