1

我有这种样式并触发组合框的 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>
4

1 回答 1

2

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

例如

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

使用Interactivity(Blend SDK)中的触发器和操作,您可能会影响其他控件,但您需要恢复您的操作,因为这些操作是必要的(即触发器也打开,执行必要的操作以恢复在-triggerfalse中所做的操作) true.

于 2012-08-24T22:05:03.977 回答