在WPF的触发器动画设计中通常在XAML标记中设置具体的触发器动画,
下面列举一个为Button添加事件触发器动画的具体语句实例:
<Button Width="60" Height="20" Name="cmdd">
<Button.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:1" To="200"
Storyboard.TargetProperty="Width"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
</Button>
这样当鼠标移动到Button上的时候就会应用具体的动画,那如何在后台代码中添加这一动作呢,详细如下:
//实例化一个故事板类
Storyboard storyboard = new Storyboard();
//实例化一个DoubleAnimation类
DoubleAnimation d1 = new DoubleAnimation();
d1.Duration = TimeSpan.FromSeconds(1);//指定动画持续时间
d1.To = 250;//指定动画的目标值
//设置DoubleAnimation实例的目标属性
Storyboard.SetTargetProperty(d1, new PropertyPath(Button.WidthProperty));
//将对应的DoubleAnimation封装到故事板
storyboard.Children.Add(d1);
//实例化一个BeginStoryboard类,用于封装故事板
BeginStoryboard begin = new BeginStoryboard();
begin.Storyboard = storyboard;
//实例化EventTrigger类,用于封装对应的事件操作
EventTrigger trigger = new EventTrigger(Button.MouseEnterEvent);
//提取EventTrigger实例的TriggerActionCollection集合,用于封装事件引发后的操作
TriggerActionCollection actions = trigger.Actions;
//将BeginStoryboard对象添加到上述集合对象中进行封装
actions.Add(begin);
//这里假定Button对象的名称是cmdd,将封装后的trigger添加到cmdd的事件集合中
cmdd.Triggers.Add(trigger);
相关技术部分参考自官方微软技术文档的相应内容。