您的位置:首页 > 编程语言

如何使用代码动态的控制StoryBoard TimeLine

2009-10-02 21:15 351 查看
如何使用代码动态的控制StoryBoard TimeLine是一个比较常见的问题。可以使用如下的方法:

在XAML中新建两个动画,本例是控制ScaleTransform的X和Y,共两个动画:
<Storyboard x:Name="onSizeChanged_sb">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00.3" Storyboard.TargetName="centerBallCanvas" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
<SplineDoubleKeyFrame x:Name="fadeInBallX" KeyTime="00:00:00.4000000" Value="1" KeySpline="0,0.797,0.987,1"/>
</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00.3" Storyboard.TargetName="centerBallCanvas" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
<SplineDoubleKeyFrame x:Name="fadeInBallY" KeyTime="00:00:00.4000000" Value="1" KeySpline="0,0.502,0.987,1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>

注意红色文字是手动加上的,用于找到这两个关键帧,后面代码会用到。

相应的CS文件:

//修改相关参数后播放Storyboard
fadeInBallX.Value = 0.5;
fadeInBallY.Value = 0.5;
onSizeChanged_sb.Begin();

这样就可以根据代码中的值动态的控制动画效果了,对其它的UIElement.Opacity、SolidColorBrush.Color等属性的动画也都适用,非常方便。

转自:http://silverlight.cn/blogs/patrickwj/archive/2007/10/17/safsaf.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐