私は手動でカルーセルパネルを作成しています。私は車輪のように見えるグリッドを回転させる単純なストーリーボードを持っています。UWPストーリーボードアニメーションの回転値(角度)を取得中またはその後に取得
<Storyboard x:Name="MyStoryboard">
<DoubleAnimation Duration="0, 0, 30" To="3000" FillBehavior="HoldEnd" x:Name="myAnimation"
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
Storyboard.TargetName="Wheel" d:IsOptimized="True"/>
</Storyboard>
ホイールは10度のセグメントに分割されているので、アニメーションを手動で停止しているときにのみ、10度の倍数に載置しなければなりません。 MSDN: How to Set a Property After Animating it with a Storyboard 最初の2つの解決策はUWPには適用されないようです(Storyboard.Removeメソッドは存在しません)。私は3番目の方法はパネルを回転させることには当てはまりませんストーリーボードを、アーティクルの例がボタンで行う方法と同様に、グリッドの依存プロパティとして設定します。
ストーリーボードが停止するのと同じように何らかの方法でローテーション値を取得できたら、10の次の倍数に丸めてDoubleAnimation.To値を設定することができます。誰もがこの価値を掴む方法を知っていますか?
これは動作します。ありがとう!これは、アニメーションのオーバーライドプロパティRenderTransformをキャストしています。これは、できるだけのCompositeTransformプロパティに値を渡すことができません。 –
あなたのアニメーションは、Wheel要素のRenderTransformプロパティの値として設定したCompositeTransformのRotationプロパティ、つまりこのプロパティの値を設定します。したがって、このプロパティから現在の値を取得できます。 – mm8