Не запускать триггер, если активен другой триггер - PullRequest
1 голос
/ 29 июля 2011

Я использую элемент управления ToggleButton.У меня есть триггеры для свойств IsChecked и IsMouseOver, которые меняют цвета фона и переднего плана.Я не хочу, чтобы срабатывал триггер IsMouseOver, если отмечена кнопка ToggleButton.Возможно ли это?

Мои текущие триггеры для кнопки ToggleButton:

<ControlTemplate.Triggers>
    <Trigger Property="IsChecked" Value="True">
        <Setter TargetName="Border" Property="Background" Value="{DynamicResource ControlSelectedBrush}"/>
        <Setter TargetName="ToggleButtonText" Property="Foreground" Value="{DynamicResource ControlSelectedTextBrush}"/>
    </Trigger>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter TargetName="ToggleButtonText" Property="Foreground" Value="{DynamicResource ControlHoverBrush}"/>
    </Trigger>
</ControlTemplate.Triggers>

1 Ответ

2 голосов
/ 29 июля 2011

Используйте MultiTrigger и определите это как дополнительное условие.

т.е.

<MultiTrigger>
    <MultiTrigger.Conditions>
        <Condition Property="IsMouseOver" Value="True" />
        <Condition Property="IsChecked" Value="False" />
    </MultiTrigger.Conditions>
    <Setter TargetName="ToggleButtonText" Property="Foreground"
            Value="{DynamicResource ControlHoverBrush}" />
</MultiTrigger>
...