我在WPF中有一个3D模型,我试图制作一个让相机绕过我的模型的动画。我有以下代码:
public MainWindow()
{
InitializeComponent();
RegisterName("thisWindow", this);
}
private Model3DGroup MainModel3Dgroup = new Model3DGroup();
private PerspectiveCamera TheCamera;
private double CameraPhi = Math.PI / 6.0;
private double CameraTheta = Math.PI / 6.0;
private double CameraR = 35.0;
private Storyboard storyboard = new Storyboard();
private DependencyProperty CameraPhiProperty = DependencyProperty.Register("CameraPhiProperty", typeof(double), typeof(MainWindow));
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// Define model, lights and everthing
Animations();
}
private void RotateAroundTower()
{
DoubleAnimation animation = new DoubleAnimation();
animation.From = 0.0;
animation.To = 360.0;
animation.Duration = new Duration(TimeSpan.FromSeconds(10));
animation.RepeatBehavior = RepeatBehavior.Forever;
storyboard.Children.Add(animation);
Storyboard.SetTargetName(animation, "thisWindow");
Storyboard.SetTargetProperty(animation, new PropertyPath(CameraPhiProperty));
}
private void PositionCamera()
{
// Translates CameraPhi and CameraTheta to coordinates and positions the camera accordingly
}
我对动画的所有内容都是根据我在msdn上找到的内容拼凑而成的,但在我看来,我的问题是动画会更改DependencyProperty CameraPhiProperty对象,并且从不调用PositionCamera。 如何将值从DependencyProperty传递给我的CameraPhi并调用PositionCamera? 或者是否有一个更清晰的解决方案来动画这个?