2013-04-09 3 views
2

Я хочу избежать изменения цвета кнопки при ее отключении. Цвет кнопки должен быть таким же, если его диагональ или нет.Отключить изменение цвета «IsEnabled = false» на кнопке?

Используя стиль можно изменить цвет фона, когда он получает инвалид:

<Style TargetType="{x:Type Button}"> 
... 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type Button}"> 
     ... 
     <ControlTemplate.Triggers> 
     ... 
      <Trigger Property="IsEnabled" Value="false"> 
      <Setter TargetName="Border" Property="Background" Value="#EEEEEE" /> 
      <Setter TargetName="Border" Property="BorderBrush" Value="#AAAAAA" /> 
      <Setter Property="Foreground" Value="#888888"/> 
      </Trigger> 
     </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

я могу изменить цвет фона, но я хочу сохранить это динамичным, так как цвет фона с привязкой к данным и не должны изменить ,

Если я удалю установщик фона, выполняется изменение цвета фона по умолчанию.

Как отключить изменение цвета? Или, по крайней мере, создать привязку для фона с отключенным фоном?

Извините за мой плохой английский.

ответ

0

Если вы хотите, чтобы сделать его данных bonund наиболее подходящее место, имо, декларирует его в относительной DataTmplate вашего контроля, где вы указываете Style (уже определены вами) и данных применительно к контролю.

Здесь вы можете определить Converter между вашим состоянием и относительным цветом, который вы хотели бы отобразить на кнопке.

ИЛИ

Если вы хотите ограничить себя в Style, вы можете определить привязку данных внутри Style сам. Imo не очень логично, но это возможно.

Посмотрите на этот ответ:

Change Button Background color through MVVM pattern in WPF

+0

Я dont't получить, как я могу изменить background_color в инвалидов-State кнопки с помощью стиля или DataTemplate. Можете ли вы это указать? –

+0

@DocSnuggles: вы посмотрели ссылку, указанную в моем ответе? Существует пример того, как это сделать. – Tigran