2009-07-29 6 views
1

を変換します。各ModelVisual3Dには、移動するたびにRotateTransform3DとTranslateTransform3Dが適用されます。そして、各ModelVisual3Dオブジェクトは互いに独立して動きます。WPFのアニメーションは、私は複数の(20'ish 1)を持つことができますWPFの3Dプロジェクトに取り組んでいる各

これを行うには、オブジェクトを移動するたびに、各ModelVisual3Dを回転させて、回転と変換変換の両方の移動に対してダブルアニメーションを設定します。次に、(各オブジェクトの)両方の変換でBeginAnimation()を呼び出します。

つまり、20個のModelVisual3Dオブジェクトがある場合は、移動するたびにBeginAnimation()を40個の異なる変形オブジェクトで呼び出すことになります。

これは正常ですが、より良い方法があるようです。複数のModelVisual3Dオブジェクトの複数のトランスフォームを1つの「トランスフォームグループ」オブジェクトにグループ化し、その上でBeginを呼び出すことができるものはありますか?

また、私はストーリーボードオブジェクトを使用して見て、私はすべてC#でこれをやっている(非常に少ない静的XAMLは、ここで起こって、UIのほとんどが動的に作成されます)。ストーリーボードオブジェクトは、単一のModelVisual3Dオブジェクトに対してのみ使用できるようです。最善のケースでは、私はBeginAnimationと呼ぶ20のストーリーボードオブジェクトになります。

または私が行うための最善のことをやっているのですか?

答えて

0

あなたはTransform3DGroupにRotateTransform3DとTranslateTransform3Dの両方を保存することができます。そうすれば、BeiginAnimationが20'ishに電話してくれるはずです。

+0

Transform3DGroup.BeginAnimation()呼び出しで1つのDependencyPropertyが使用されるため、実際には機能しません。私は、OffsetXプロパティの変換トランスフォームとAngleプロパティの回転変換を行っています。だからまだ2回の呼び出し – Turbo

関連する問題