WPF样式动画Trigger.EnterActions和Trigger.ExitActions(ExitActions其实可以不做任何事情)

本文介绍了一种使用WPF实现的鼠标移入控件时触发的平滑动画效果。通过设置EnterActions和ExitActions,实现了鼠标悬停时控件向左移动及移出时返回原位的效果,并解释了未指定To属性时的行为。

这是一个鼠标移入后,控件往左移动的动画:

 1               <Style TargetType="{x:Type StackPanel}">
 2                             <Setter Property="RenderTransform">
 3                                 <Setter.Value>
 4                                     <TranslateTransform X="{Binding ElementName=borderContent,Path=ActualWidth}"/>
 5                                 </Setter.Value>
 6                             </Setter>
 7                             
 8                             <Style.Triggers>
 9                                 <Trigger Property="IsMouseOver" Value="True">
10                                     <Trigger.EnterActions>
11                                         <BeginStoryboard>
12                                             <Storyboard>
13                                                 <DoubleAnimation To="0"  Duration="0:0:0.2" AccelerationRatio="0.5"  Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"/>
14                                             </Storyboard>
15                                         </BeginStoryboard>
16                                     </Trigger.EnterActions>
17                                     <Trigger.ExitActions>
18                                         <BeginStoryboard>
19                                             <Storyboard>
20                                                 <DoubleAnimation Duration="0:0:0.2" AccelerationRatio="0.5" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"/>
21                                             </Storyboard>
22                                         </BeginStoryboard>
23                                     </Trigger.ExitActions>
24                                 </Trigger>
25                             </Style.Triggers>
26                         </Style>        
View Code

其中可以看到,只有在EnterActions中设置了To属性,

 To="0",但ExitActions并没有设置From或者To属性,但在实际开发中,你会发现

当鼠标移出控件时,控件就会还原回原来的状态,但是当你删除ExitActions代码后就不会生效。

另:

   AccelerationRatio="0.5"  设置动画加速度,值为 0 - 1.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值