如果另一个触发器处于活动状态,请不要触发

时间:2011-07-28 23:10:33

标签: wpf xaml triggers styles

我正在使用ToggleButton控件。我有IsChecked和IsMouseOver属性的触发器,可以更改背景和前景色。如果选中ToggleButton,我不希望触发IsMouseOver触发器。这可能吗?

我目前触发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 个答案:

答案 0 :(得分:2)

使用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>