[Windows通用应用开发]从代码创建StoryBoard
2015-04-16 04:23
239 查看
从代码创建StoryBoard
本方法适用于采用Windows运行时的Windows和Windows Phone系统应用开发采用Silverlight运行时的Windows Phone应用开发请参考此链接
文中所有的代码均为C#
StoryBoard可以在Blend中生成Xaml代码,该方法较简单,本文不再讨论。
从代码创建StoryBoard需要用到Windows.UI.Xaml.Media.Animation.Storyboard类,分为以下几个步骤:
(已经用Xaml创建了一个叫做rect的矩形,也是动画的对象,动画的目的是大小增加为2倍)
创建Transform
设置变换方式
CompositeTransform myTransform = new CompositeTransform(); myTransform.ScaleX = 1; myTransform.ScaleY = 1; rect.RenderTransform = myTransform;
创建Animation
设定动画类型,创建两个Animation,用于X和Y坐标的变换,Duration表示动画的时间长度
DoubleAnimation myAnimationX = new DoubleAnimation(); DoubleAnimation myAnimationY = new DoubleAnimation(); Duration duration = new Duration(TimeSpan.FromSeconds(2)); myAnimationX.Duration = duration; myAnimationY.Duration = duration;
创建StoryBoard并设定目标
SetTargetProperty确定动画影响的目标属性
Storyboard story = new Storyboard(); story.Duration = duration; story.Children.Add(myAnimationX); story.Children.Add(myAnimationY); Storyboard.SetTarget(myAnimationX, myTransform); Storyboard.SetTarget(myAnimationY, myTransform); Storyboard.SetTargetProperty(myAnimationX, "ScaleX"); Storyboard.SetTargetProperty(myAnimationY, "ScaleY");
确定目标变换量
此处为X和Y方向大小的变换量
myAnimationX.To = 2; myAnimationY.To = 2;
StoryBoard加入到资源
Resources.Add("myStoryboard", story);
动画开始!
story.Begin();
再给出一个用双帧改变TextBlock(Name: TB_test)字号的例子:
Storyboard story = new Storyboard(); Duration duration = new Duration(TimeSpan.FromSeconds(0.05)); story.Duration = duration; DoubleAnimationUsingKeyFrames expand = new DoubleAnimationUsingKeyFrames(); EasingDoubleKeyFrame e1 = new EasingDoubleKeyFrame(); e1.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromTicks(0)); e1.Value = 40; EasingDoubleKeyFrame e2 = new EasingDoubleKeyFrame(); e2.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(0.1)); e2.Value = 10; expand.KeyFrames.Add(e1); expand.KeyFrames.Add(e2); expand.EnableDependentAnimation = true; story.Children.Add(expand); Storyboard.SetTarget(expand, TB_test); Storyboard.SetTargetProperty(expand, "(TextBlock.FontSize)"); Resources.Add("Storyboard1", story); story.Begin();
所有代码均通过Windows 10 Mobile和Windows 10真机调试
相关文章推荐
- [Windows通用应用开发] 代码编写StoryBoard时可能遇到的几个问题
- 大钟的ios开发之旅(4)————简单谈谈ios程序界面实现的三种方式(代码创建,xib和storyboard)
- iOS6开发----应用集合视图(UICollectionView)-创建基于Storyboard的集合视图应用程序
- 《深入浅出Windows 10通用应用开发》
- [Windows通用应用开发]Toast通知(二)——Toast音效
- 使用Squirrel创建基于Electron开发的Windows 应用安装包
- 快应用开发1--编译官方的代码并在手机上运行rpk文件(Windows系统上)
- 深入浅出Windows 10 通用应用开发学习笔记(C++) 3-1
- Windows开发应用(1)如何创建应用程序项目
- [Windows通用应用开发]Toast通知(三)——定时Toast
- Windows通用应用开发手记-Behavior SDK概述
- [Windows通用应用开发]Toast通知(一)——Toast实现
- 一行代码不用敲,15分钟轻松搞定GIS开发,GISer福音,教你如何从下载到使用webappbuilder创建第一个应用程
- Sailfish应用开发入门(一)Windows 安装Sailfish,创建第一个Sailfish APP
- [Windows通用应用开发] 读写XML文件
- [windows通用应用开发] win8.1中制作类似win10菜单栏效果
- 通用Windows应用《博客园-开发者的网上家园》开发(1)——MVVM模式
- Windows群集开发-编写微软群集服务器(MSCS)资源DLL:5)创建群集可感知应用
- 创建你的第一个Windows通用应用(UWP)
- Windows通用应用开发手记-Behavior SDK概述