如何使用代码动态的控制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
在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
相关文章推荐
- 转--如何使用代码动态的获取和设置ImageView的宽度和高度?
- 如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式
- wpf中后台代码动态控制Storyboard(一)
- 【转】如何使用代码动态设置水晶报表中的文本,字段等对象呢?
- silverlight中用代码动态控制Storyboard(动画)属性的几种方法
- 如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式
- silverlight如何在运行时用代码动态控制(或创建)动画
- 如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式
- c++builder上使用TIDTCPServer和TIDTCPClient进行简单通信,如何通过代码动态设置TIDTCPServer的Bindings属性。
- 如何使用代码动态的获取和设置ImageView的宽度和高度?
- 如何通过代码控制软件键盘的显示与隐藏(InputMethodManager 的使用)
- 在storyboard中设置一个一个button,只进行了位置设置,没有使用约束,发现用代码修改不了如何解决
- 如何使用jquery动态加载js,css文件实现代码
- silverlight如何在运行时用代码动态控制(或创建)动画
- 如何使用jquery动态加载js,css文件实现代码
- Unity3D-ScrollView中使用Layout布局后用代码如何控制ScrollView移动到指定位置
- Android如何使用代码动态生成界面
- 如何使用代码动态的获取和设置ImageView的宽度和高度?
- 如何使用代码动态设置水晶报表中的文本,字段等对象呢?
- 如何使用代码动态设置水晶报表中的文本,字段等对象呢?