我有这种风格并触发组合框的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>
答案 0 :(得分:2)
您可以通过在受影响的控件上设置触发器来反转逻辑,但是您需要一种方法来定位应用此样式的控件。
e.g。
<DataTrigger Binding="{Binding IsMouseOver, ElementName=ThatMenuItem}" ...>
使用来自Interactivity
(Blend SDK)的触发器和操作可能会影响其他控件,但您需要还原您的操作,因为这些操作必不可少(即false
上的触发器,什么是必要的,以恢复在true
- 触发器中所做的事情。