Storyboard是用来干吗的?
MSDN的解释是:通过时间线控制动画,并为其子动画提供对象和属性目标信息。它究竟是个什么样的类?有什么作用?代码示例:
private void LayoutRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
//获取点击处相对于容器的坐标位置
Point p = e.GetPosition(LayoutRoot);
//创建移动用的动画故事板
Storyboard storyboard = new Storyboard();
//创建X轴方向动画
//创建有起点、终点及总耗时的动画处理类
DoubleAnimation xAnimation = new DoubleAnimation() {
//起点
From = Canvas.GetLeft(rectangle),
//终点
To = p.X,
//花费时间
Duration = new Duration(TimeSpan.FromMilliseconds(500)),
};
//将X轴方向动画赋予rectangle
Storyboard.SetTarget(xAnimation, rectangle);//xAnimation动画过程绑定到矩形对象rectangle
//设置X轴方向动画所影响的对象属性为Canvas.Left
Storyboard.SetTargetProperty(xAnimation, new PropertyPath("(Canvas.Left)"));//xAnimation动画它影响的是对象(rectangle)的Canvas.Left属性。问题:在这里“Storyboard”改为它的实例“storyboard”行吗?
//将X轴方向动画添加进动画故事板中
storyboard.Children.Add(xAnimation);
//创建Y轴方向动画
DoubleAnimation yAnimation = new DoubleAnimation() {
From = Canvas.GetTop(rectangle),
To = p.Y,
Duration = new Duration(TimeSpan.FromMilliseconds(500)),
};
Storyboard.SetTarget(yAnimation, rectangle);
//设置Y轴方向动画所影响的对象属性为Canvas.Top
Storyboard.SetTargetProperty(yAnimation, new PropertyPath("(Canvas.Top)"));
storyboard.Children.Add(yAnimation);
//播放动画
storyboard.Begin();
问题:为什么“DoubleAnimation”的实例可以加入“storyboard”,而且“storyboard”控制动画的播放,DoubleAnimation类不能控制吗?
}
MSDN的解释是:通过时间线控制动画,并为其子动画提供对象和属性目标信息。它究竟是个什么样的类?有什么作用?代码示例:
private void LayoutRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
//获取点击处相对于容器的坐标位置
Point p = e.GetPosition(LayoutRoot);
//创建移动用的动画故事板
Storyboard storyboard = new Storyboard();
//创建X轴方向动画
//创建有起点、终点及总耗时的动画处理类
DoubleAnimation xAnimation = new DoubleAnimation() {
//起点
From = Canvas.GetLeft(rectangle),
//终点
To = p.X,
//花费时间
Duration = new Duration(TimeSpan.FromMilliseconds(500)),
};
//将X轴方向动画赋予rectangle
Storyboard.SetTarget(xAnimation, rectangle);//xAnimation动画过程绑定到矩形对象rectangle
//设置X轴方向动画所影响的对象属性为Canvas.Left
Storyboard.SetTargetProperty(xAnimation, new PropertyPath("(Canvas.Left)"));//xAnimation动画它影响的是对象(rectangle)的Canvas.Left属性。问题:在这里“Storyboard”改为它的实例“storyboard”行吗?
//将X轴方向动画添加进动画故事板中
storyboard.Children.Add(xAnimation);
//创建Y轴方向动画
DoubleAnimation yAnimation = new DoubleAnimation() {
From = Canvas.GetTop(rectangle),
To = p.Y,
Duration = new Duration(TimeSpan.FromMilliseconds(500)),
};
Storyboard.SetTarget(yAnimation, rectangle);
//设置Y轴方向动画所影响的对象属性为Canvas.Top
Storyboard.SetTargetProperty(yAnimation, new PropertyPath("(Canvas.Top)"));
storyboard.Children.Add(yAnimation);
//播放动画
storyboard.Begin();
问题:为什么“DoubleAnimation”的实例可以加入“storyboard”,而且“storyboard”控制动画的播放,DoubleAnimation类不能控制吗?
}
Storyboard 类提供 TargetName 和 TargetProperty 附加属性。通过在动画上设置这些属性,将告诉动画对哪些内容进行动画处理
在silverlight中可以创建一下几种动画
小弟这样理解对吗?
DoubleAnimation定义处理动画过程,而动画的对象是“rectangle”,Stroyboard类将二者整合到一起,形成动画。但是,小弟还是有点不明白:
Storyboard.SetTarget(xAnimation, rectangle);//xAnimation动画过程绑定到矩形对象rectangle
//设置X轴方向动画所影响的对象属性为Canvas.Left
Storyboard.SetTargetProperty(xAnimation, new PropertyPath("(Canvas.Left)"));//xAnimation动画它影响的是对象(rectangle)的Canvas.Left属性。问题:在这里“Storyboard”改为它的实例“storyboard”行吗?请如梦哥多多直接?