< DoubleAnimationUsingKeyFrames BeginTime ="00:00:00" Storyboard.Targetname ="darkMoon"
Storyboard.TargetProperty ="(UIElement.Rendertransform).(transformGroup.Children)[3].(Translatetransform.X)" >
< EasingDoubleKeyFrame KeyTime ="00:00:01" Value ="280" />
</ DoubleAnimationUsingKeyFrames >
< DoubleAnimationUsingKeyFrames BeginTime ="00:00:00" Storyboard.Targetname ="darkMoon"
Storyboard.TargetProperty ="(UIElement.Rendertransform).(transformGroup.Children)[3].(Translatetransform.Y)" >
< EasingDoubleKeyFrame KeyTime ="00:00:01" Value ="-245" />
</ DoubleAnimationUsingKeyFrames >
</ Storyboard > 上图为动画执行过程截图,在某些情况下要实现一些动画效果是不能预先确定的,这就需要在程序编码中去动态的创建动画效果。使用Blend进行动画设计是非常简单的,尤其是对Adobe Flash熟悉的人员,其实在程序编码中使用程序创建动画也一样的简单,相比之下只是需要人为的去编写很多的程序代码,另外就是通过程序代码动态的创建动画效果需要开发人员对Silverlight的动画框架非常熟悉,只有在熟练应用Silverlight动画框架所提供的动画接口的情况下才能够和使用Blend设计动画一样随心应手实现各种不同的动画效果。 编写程序代码创建动画其实也是非常简单的,只要理清了思路和熟练应用Silverlight的动画框架提供的编程 接口就可以完成动画的开发。首先需要弄清楚动画容器时间线、动画动作、动画类型、动画效果等基本概念。就以本篇的示例来分析,通过程序动态的创建动画效果的代码如下: /// <summary>
/// 创建动画
/// </summary>
private voID CreateStoryboard()
{
// 元素当前所在的坐标点
Point currentPoint = new Point(Canvas.Getleft(darkMoon), Canvas.Gettop(darkMoon));
// 目标点坐int标
Point point = new Point( 280 , - 245 );
// 创建动画容器时间线
Storyboard storyboard = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation();
// 创建X轴方向动画
doubleAnimation.From = currentPoint.X;
doubleAnimation.To = point.X;
doubleAnimation.Duration = new Duration( new TimeSpan( 0 , 0 , 1 ));
Storyboard.SetTarget(doubleAnimation, darkMoon);
Storyboard.SetTargetProperty(doubleAnimation,
new PropertyPath( " (UIElement.Rendertransform).(transformGroup.Children)[3].(Translatetransform.X) " ));
storyboard.Children.Add(doubleAnimation);
// 创建Y轴方向动画
doubleAnimation = new DoubleAnimation();
doubleAnimation.SetValue(DoubleAnimation.FromProperty, currentPoint.Y);
doubleAnimation.SetValue(DoubleAnimation.toproperty, point.Y);
doubleAnimation.SetValue(DoubleAnimation.DurationProperty, new Duration( new TimeSpan( 0 , 1 )));
Storyboard.SetTarget(doubleAnimation,
new PropertyPath( " (UIElement.Rendertransform).(transformGroup.Children)[3].(Translatetransform.Y) " ));
storyboard.Children.Add(doubleAnimation);
storyboard.Begin();
} 相关推荐资源: MSDN: http://msdn.microsoft.com/zh-cn/library/cc189090(VS.95).aspx Silverlight动画介绍: http://www.cnblogs.com/skysing/archive/2009/05/15/1457718.html 《Function Silverlight 3 Animation》----本篇中使用的示例素材选自此书 总结
以上是内存溢出为你收集整理的Silverlight & Blend动画设计系列一:偏移动画(TranslateTransform)全部内容,希望文章能够帮你解决Silverlight & Blend动画设计系列一:偏移动画(TranslateTransform)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)