触发器,顾名思义,就是当满足一定条件时,会触发一些操作,比如:改变控件的透明度,显隐,宽高等等,触发器本身做了一些操作,就是触发器触发条件不符合的时候,会自动把在触发器中更改的属性还原。但,并不是所有的属性更改后,触发器都会自动帮助我们还原,比如:在触发器中满足条件时执行一段动画,要求动画一直执行,当条件不满足条件时,终止动画,此时,触发器自身就满足不了自动关闭动画。解决办法就是手动书写当条件不满足时的动作。
书写如下:
<ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Trigger.EnterActions> <BeginStoryboard> <Storyboard AutoReverse="True" x:Name="beginstoryname1"> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle" To="-5" Duration="0:0:0.5" BeginTime="0:0:0"/> </BeginStoryboard> </Trigger.EnterActions> <Trigger.ExitActions> <StopStoryboard BeginStoryboardName="beginstoryname1"/> </Trigger.ExitActions> </Trigger> </ControlTemplate.Triggers>
总结:
针对所有触发器不能自动还原的操作,手动书写不满足条件的操作即可法解决