Metro XAMLアプリでいくつかのストーリーボードを使いこなしています。私は、コード内のStoryboard
を作成する必要があります。 XAMLは、このようになりますで私がStoryboard.TargetProperty
Storyboard.TargetPropertyをCompositeTransformに設定できません。コードからMetroスタイルアプリの回転
...
それは不可能だCompositeTransform.Rotation
への私のストーリーボードを設定したいと思います:
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="grid">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="60"/
</DoubleAnimationUsingKeyFrames>
</Storyboard>
私は似たものを作成したいと思います。重要
:私はこの正確なストーリーボード再作成しようとしておりません。私は、カスタムContentControl
のコードの中だ、そうthis
はControl
ある、とにアニメーションをターゲットとするための「グリッド」はありません。ターゲットはCompositeTransform
が予め設定した制御自体、です。
私のコード今のところ、このようなものです:
var turnSB = new Storyboard();
var doubleAnim = new DoubleAnimationUsingKeyFrames();
doubleAnim.KeyFrames.Add(new EasingDoubleKeyFrame() { KeyTime = TimeSpan.FromMilliseconds(0), Value = currentAngle });
doubleAnim.KeyFrames.Add(new EasingDoubleKeyFrame() { KeyTime = TimeSpan.FromMilliseconds(500), Value = targetAngle });
turnSB.Children.Add(doubleAnim);
Storyboard.SetTarget(doubleAnim, this.RenderTransform);
Storyboard.SetTargetProperty(doubleAnim, "(CompositeTransform.Rotation)");
turnSB.Begin();
とすぐに、それは私が(CompositeTransform.Rotation)は解決できないという例外を取得開始方法を打つよう。だから、私は物件の道が間違っていないと思っています。私はさまざまなバリエーションを試しましたが、PropertyPathsによると、これは正しいものでなければなりませんか? :これは解決不可能な問題S
であれば、私は回避策の提案に開いている...
EDIT:
私は今の問題を解決してきたと思います。私は実質的に何もすることができ、ユーザーコントロールを作成した場合、私は
...しかし、いくつかの興味深い調査結果があります。すべてが動作しますが、私はStoryboard.Targetpropertyを設定することができ、そしてアニメーションが正しく再生されます。
カスタムコントロールを使用するか、別のコントロール(ContentControlなど)から継承した場合、コードからストーリーボードを開始できない場合があります。
例:Rotation(またはその問題の変換プロパティ)をアニメーション化し、コードから開始しようとするストーリーボード(XAMLで定義)を作成すると、上記の例外が発生します。しかし、単純なプロパティをアニメーション化した場合、Opacityと言っても問題ありません。
(私はUserControlで同じことをやっていました。)
誰かがこれを説明できますか?
私は、グリッドコントロールからクラスを継承した、同じ問題を抱えています、絵コンテは、単に」勝ちましたtスタート。 –
グリッドはControlから継承されないため、作成するカスタムコントロールではありません。 –
私はグリッドを使用していなかった、私はContentControlから継承していた。 xamlは以前の試行のもので、そこにはグリッドを持つUserControlがあり、それがアニメーションのターゲットでした。しかし、このような状況では、ターゲットはコントロール自体でなければなりません。あなたが慎重に読んだ場合、私は「重要」のセクションで説明しました。 – Tenshiko