【发布时间】:2023-03-19 01:02:01
【问题描述】:
我在 isPressed 和 isMouseOver 之间有冲突的情节提要。两者都将按钮的背景更改为不同的颜色。但是 isMouseOver 故事板覆盖了 isPressed 故事板。我该如何克服这个?我听说过多个触发器,但你们能给我一个代码解决方案吗?我是 WPF 新手。
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource ToolsButtonMouseOver}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard x:Name="ToolsButtonMouseNotOver_BeginStoryboard" Storyboard="{StaticResource ToolsButtonMouseNotOver}"/>
</Trigger.ExitActions>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Trigger.ExitActions>
<BeginStoryboard x:Name="ToolsButtonNotPressedStoryboard_BeginStoryboard1" Storyboard="{StaticResource ToolsButtonNotPressedStoryboard}"/>
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard x:Name="ToolsButtonNotPressedStoryboard_BeginStoryboard" Storyboard="{StaticResource ToolsButtonPressedStoryboard}"/>
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
【问题讨论】:
-
触发器在哪里?
IsMouseOver触发器是在IsPressed之后声明的吗?你试过换地方吗?如果这不起作用,请尝试使用visual states -
是的。我尝试交换 tem
-
我已经添加了带有触发器的代码。鼠标悬停工作。但是一旦我按下按钮,isPress 工作,鼠标悬停不再工作
-
您是否考虑过使用 MultiBinding 代替?然后你可以表达数据绑定何时生效的条件。
标签: wpf triggers storyboard