【发布时间】:2014-02-02 06:53:46
【问题描述】:
我有一个关于 WPF 3D 动画的问题。
在我的用户控件中,有动态数量的 wpf 元素是在后面的代码中创建的。它们围绕 y 轴圆形定位。
我为每个元素创建一个初始角度:
var trans = new AxisAngleRotation3D();
trans.Axis = new Vector3D(0, 1, 0);
trans.Angle = initialAngleFromZero;
RotateTransform3D elementTransform = new RotateTransform3D(trans);
wpfElement.Transform = elementTransform;
然后根据需要显示每个元素。
现在,我想在后面的代码中同时将所有动态创建的对象围绕 y 轴旋转相同的角度。我该怎么做?我尝试了以下方法:
foreach(var wpfElement in wpfElements)
{
var sb = new Storyboard();
var ani = new DoubleAnimation();
ani.Duration = new Duration(TimeSpan.FromSeconds(5));
ani.From = fromAngle;
ani.To = toAngle;
sb.Children.Add(ani);
Storyboard.SetTarget(ani, wpfElement.Transform);
Storyboard.SetTargetProperty(ani, new PropertyPath(AxisAngleRotation3D.AngleProperty));
sb.Begin();
}
但这不起作用,什么也没有发生。
【问题讨论】:
标签: c# wpf animation user-interface rotation