我有一个 ModelVisual3D。我想为其在 Viewport3D 中的位置设置动画。我已经获得了用于 BoxVisual3D(来自 HelixToolkit)的代码,但该代码不适用于我的 ModelVisual3D。ModelVisual3D 应沿 X 轴平移,但它只是静止不动。
我实际上已经将我的 BoxVisual3D 的工作代码复制到我的 ModelVisual3D 中。现在,我只是在做 OffsetX 属性,但稍后我需要在多个 ModelVisual3D 上同时设置多个属性,因此需要故事板。
这是不起作用的代码:
Transform3DGroup modelTransformGroup = (Transform3DGroup)_myModel.Transform;
TranslateTransform3D curTransform = (TranslateTransform3D)modelTransformGroup.Children[1];
var moveX = new DoubleAnimation(0, 1000, TimeSpan.FromSeconds(5));
Storyboard.SetTarget(moveX, curTransform);
Storyboard.SetTargetProperty(moveX, new PropertyPath(TranslateTransform3D.OffsetXProperty));
var sb = new Storyboard();
sb.Children.Add(moveX);
sb.Begin();
这是一些有效的代码,但还不够,因为我需要同时将许多动画与故事板同步:
Transform3DGroup modelTransformGroup = (Transform3DGroup)_myModel.Transform;
TranslateTransform3D curTransform = (TranslateTransform3D)modelTransformGroup.Children[1];
var moveX = new DoubleAnimation(0, 1000, TimeSpan.FromSeconds(5));
curTransform.BeginAnimation(TranslateTransform3D.OffsetXProperty, moveX);
谢谢你的帮助!
Qyouu
手掌心
相关分类