Silverlight动画技术全解析
1. 动画属性恢复与处理
前三种动画选项会以某种方式将动画属性恢复到其原始值。若不想这样,可使用最后一种选项。在启动动画前,需附加一个事件处理程序,以在动画完成时做出反应。可在页面首次加载时执行此操作:
widthAnimation.Completed += animation_Completed;当Completed事件触发时,可检索控制动画的情节提要并停止它:
private void storyboard_Completed(object sender, EventArgs e) { Storyboard storyboard = (Storyboard)sender; storyboard.Stop(); }调用Storyboard.Stop()时,属性会恢复到动画开始前的值。若不想这样,可记录动画当前应用的值,移除动画,然后手动设置新属性,示例如下:
double currentWidth = cmdGrow.Width; storyboard.Stop(); cmdGrow.Width = currentWidth;需注意,这会更改属性的本地值,可能影响其他动画的运行。例如,若使用未指定From