RSt*_*yle 0 wpf triggers storyboard
我在 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>
Run Code Online (Sandbox Code Playgroud)
当它是 IsMouseOver 和 IsPressed 时,你应该有多重触发。另请注意,触发器的顺序也很重要。如果简单的 IsMouseOver 在多触发器之后,则当您悬停并按下时,它将成为活动条件。使用前景进行演示,因为它是演示效果的最简单方式。
<Button Content="Click Me">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="SpringGreen"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsPressed" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="Blue"/>
</MultiTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3030 次 |
| 最近记录: |