У меня есть модель Visual3D.Я хотел бы оживить свою позицию в 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);
Спасибо за помощь!
Редактировать: я хотел добавить, что _myModel.Transform установлен в качестве Transform3DGroup ранее в коде, и что первый дочерний элемент - RotationTransform3D, а второй дочерний элемент - TranslateTransform3D.