更新时间:2022-08-15 11:00:52
this.theRotateX.Axis = new Vector3D(1, 0, 0);
this.theRotateY.Axis = new Vector3D(0, 1, 0);
this.theRotateZ.Axis = new Vector3D(0, 0, 1);
能够达到预期效果,但是程序中改变XAML只保留最后一次的值,也就是RotateZ的值,和预期相差甚远,下边是解决方法,通过声明3个Rotate来达到同时改变XYZ旋转动画:
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D x:Name="theRotateX" Angle="180" Axis="1 0 0" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D x:Name="theRotateY" Angle="180" Axis="0 1 0" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D x:Name="theRotateZ" Angle="180" Axis="0 0 1" />
</RotateTransform3D.Rotation>
</RotateTransform3D>