是否可以从另一个控制触发器更改控制可见性

时间:2012-08-24 22:00:04

标签: c# wpf xaml triggers styles

我有这种风格并触发组合框的IsMouseOver属性(变成菜单)。当这个触发器触发时(鼠标悬停在项目上方),我想改变另一个对象的可见性吗?目前我只是在发生这种情况时设置前景,但我认为它们必须是一种方式。

<Style x:Key="HeaderMenuButtonStyle" TargetType="TextBlock">
    <Setter Property="Margin" Value="0,0,20,5" />
    <Setter Property="Foreground" Value="{StaticResource HeaderMenuButtonColorBrush}" />
    <Setter Property="FontSize" Value="24" />
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Foreground" Value="{StaticResource HeaderMenuButtonHoverColorBrush}" />
        </Trigger>
    </Style.Triggers>
</Style>

1 个答案:

答案 0 :(得分:2)

您可以通过在受影响的控件上设置触发器来反转逻辑,但是您需要一种方法来定位应用此样式的控件。

e.g。

<DataTrigger Binding="{Binding IsMouseOver, ElementName=ThatMenuItem}" ...>

使用来自Interactivity(Blend SDK)的触发器和操作可能会影响其他控件,但您需要还原您的操作,因为这些操作必不可少(即false上的触发器,什么是必要的,以恢复在true - 触发器中所做的事情。