潸然泪下的小飞飞

导航

关于WPF XAML 中 Trigger的反向ExitActions

触发器,顾名思义,就是当满足一定条件时,会触发一些操作,比如:改变控件的透明度,显隐,宽高等等,触发器本身做了一些操作,就是触发器触发条件不符合的时候,会自动把在触发器中更改的属性还原。但,并不是所有的属性更改后,触发器都会自动帮助我们还原,比如:在触发器中满足条件时执行一段动画,要求动画一直执行,当条件不满足条件时,终止动画,此时,触发器自身就满足不了自动关闭动画。解决办法就是手动书写当条件不满足时的动作。

书写如下:

<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>

总结:

     针对所有触发器不能自动还原的操作,手动书写不满足条件的操作即可法解决

posted on 2014-03-31 10:24  潸然泪  阅读(562)  评论(0编辑  收藏  举报