我有一个带有两个触发器的按钮。
一个在cv2.imread
上,另一个在mouseClick上。
如果我将IsMouseOver
中的一个注释掉,另一个注释可以很好地工作,但是如果我同时使用这两个注释,那么mouseClick将会被忽略。
这是我的触发器:
IsMouseOver
MouseDownHelper来自there,因为它在没有其他触发器的情况下仍然有效。
如果单击按钮,如何获得OnHover效果?
编辑: 您还可以使用也不起作用的IsPressed。
答案 0 :(得分:0)
我找到了使用StopStoryboard
的解决方案。
点击时,我还添加了第二个动画,并且我使用的是onEnter和onLeave而不是onHover。
<ControlTemplate.Triggers>
<Trigger Property="local:MouseDownHelper.IsMouseLeftButtonDown"
Value="True">
<Trigger.EnterActions>
<StopStoryboard BeginStoryboardName="StoryboardEnter"/>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="00:00:00.000"
Storyboard.TargetName="SendReportsButtonMainGrid"
Storyboard.TargetProperty="Background.Color"
To="{StaticResource HoverGray}" />
<ColorAnimation Duration="00:00:00.100"
Storyboard.TargetName="SendReportsButtonMainGrid"
Storyboard.TargetProperty="Background.Color"
To="{StaticResource ClickGray}" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="00:00:00.100"
Storyboard.TargetName="SendReportsButtonMainGrid"
Storyboard.TargetProperty="Background.Color"
To="{StaticResource HoverGray}" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard Name="StoryboardEnter">
<Storyboard>
<ColorAnimation Duration="00:00:00.200"
Storyboard.TargetName="SendReportsButtonMainGrid"
Storyboard.TargetProperty="Background.Color"
To="{StaticResource HoverGray}" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="00:00:00.400"
Storyboard.TargetName="SendReportsButtonMainGrid"
Storyboard.TargetProperty="Background.Color"
To="{StaticResource HeaderGray}" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>