Итак, я добавляю кнопки с помощью кода в сетку, когда нажимается какая-то кнопка, я хочу отключить ее и установить цвет фона на зеленый или другой, фон должен быть установлен только для той кнопки, на которую нажали один раз. Но неважно, что отключенная кнопка имеет прозрачный фон.
Я попробовал добавить метод к событию IsEnabledChanged
button.IsEnabledChanged += (sender, e) =>
{
button.Background = brush;
};
Это единственный способ изменить фон при отключенной кнопке, но по какой-то причине он не работает каждый раз. Я также попытался установить «ButtonDisabledBackgroundThemeBrush» в коде:
private void BottomGridButtonClick(object sender, RoutedEventArgs e)
{
Button btn = ((Button)sender);
btn.Resources.Add(new KeyValuePair<object, object>("ButtonDisabledBackgroundThemeBrush", new SolidColorBrush(Colors.Green)));
btn.Resources["ButtonDisabledBackgroundThemeBrush"] = new SolidColorBrush(Colors.Green);
((Button)sender).IsEnabled = false;
}
Настройка «ButtonDisabledBackgroundThemeBrush» в generic.xaml также не имеет никакого эффекта.
Вам необходимо переопределить ресурс ButtonBackgroundDisabled
:
btn.Resources["ButtonBackgroundDisabled"] = new SolidColorBrush(Colors.Green);
Вы можете найти это в DefaultButtonStyle
в generic.xaml.