【问题标题】:Don't fire trigger if another trigger is active如果另一个触发器处于活动状态,则不要触发触发器
【发布时间】:2011-10-15 13:31:05
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: wpf xaml triggers styles


    【解决方案1】:

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

    【讨论】:

    • 正是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多