1)我的重复按钮视觉状态是一个矩形,按下时 Stroke 从透明变为灰色,
这种视觉状态变化仅在按下时发生一次,
因为这是一个重复按钮,我希望在按下时一遍又一遍地重新发生视觉状态变化(如按下闪烁),我怎样才能改变我的视觉状态以获得这样的效果
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0" To="Pressed"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)" Storyboard.TargetName="rectangle">
<EasingColorKeyFrame KeyTime="0" Value="#FF8F8E8E" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Rectangle x:Name="rectangle" HorizontalAlignment="Stretch" Stroke="Transparent" Fill="Transparent" VerticalAlignment="Stretch" />
</Grid>
</ControlTemplate>
2)我想到的一种方法是使用 GoToStateAction 和 EventTrigger on Click 事件(因为重复按钮一遍又一遍地重新触发该事件),
但我似乎无法将 GoToStateAction 直接放在 ControlTemplate 上,并且没有太多运气将它放在 ControlTemplate 和 EventTrigger 下。
所以总结一下,我有两个问题:
1)如何解决这个问题的一般想法。
2)我的想法需要我在 ControlTemplate 对象上放置一个 GoToStateAction,这似乎无法完成,有什么想法可以解决这个问题吗?
提前致谢。