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>
也是通過這發現在程序中改變XAML只在一次程序循環同時改變一次,這樣正常的編程方式會出現很多問題,不知道有沒有其他的方式能夠實現程序中順序改變,而不是最後一次提交那種效果