'Отображение серым' изображения кнопки WPF?

У меня есть простое Button управление, которое содержит Image возразите как его содержание. Я хочу так устанавливает Image непрозрачность к 0,5, когда Button отключен для обеспечения дополнительного визуального индикатора относительно Button состояние.

Что самый простой путь состоит в том, чтобы выполнить тот результат в XAML?Спасибо за помощь.

58
задан David Veeneman 27 March 2010 в 20:57
поделиться

1 ответ

Используйте триггер в стиле изображения. (Было бы более естественно поместить его в стиль кнопки, но стиль кнопки не может легко повлиять на изображение по досадным техническим причинам. Это могло быть выполнено в шаблоне ControlTemplate кнопки, но это слишком много для того, что вы хочу здесь.)

<Button>
  <Image Source="something.png">
    <Image.Style>
      <Style TargetType="Image">
        <Style.Triggers>
          <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Opacity" Value="0.5" />
          </Trigger>
        </Style.Triggers>
      </Style>
    </Image.Style>
  </Image>
</Button>

Обратите внимание, что здесь мы пользуемся преимуществом того факта, что изображение будет отключено, когда кнопка отключена, поэтому мы можем запускать непосредственно по собственному свойству IsEnabled изображения. В других случаях свойство Button, которое мы хотим активировать, может не быть унаследовано Image; в этом случае нам нужно будет использовать DataTrigger с FindAncestor RelativeSource для привязки к содержащей его кнопке.

155
ответ дан 24 November 2019 в 18:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: