0

Silverlight で Y 軸上のオブジェクトを時間の経過と共に移動させたいのですが、その高さが一定ではないため、次の 2 行目を次のように変更できるようにしたいと考えています。

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
    <EasingDoubleKeyFrame KeyTime="00:00:00"  Value="-50"/>
    <EasingDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>

より似たものに:

<EasingDoubleKeyFrame KeyTime="00:00:00"  Value="-100%"/>

またはおそらく:

<EasingDoubleKeyFrame KeyTime="00:00:00"  Value="-{ExpandSite Height}"/>

ただし、それはコンパイルされません。助けていただければ幸いです。参考までに、Expression Blend 3 を使用しています。

編集

私は基本的に、ここに示されているものと同様の効果を実現したいと考えていますが、このコードでは、変換されるすべてのオブジェクトが 100x100 であることを当然のことと考えています。

4

1 に答える 1

0

この記事では、キーフレーム要素がフレームワーク要素から継承されないことについて説明します。そのため、そのプロパティにデータバインドできず、コード ビハインドで変更を行う必要があります。

コード ビハインド アニメーションの作成方法の例については、こちらを参照してください。ただし、サンプルコードには誤りがあることに注意してください。コードに のような行がありませんdd.KeyFrames.Add(easy)。一方、アニメーションに をx:Name指定して配列要素を参照するだけで、おそらくアニメーションにアクセスできます (animation.children[0].KeyFrames[0].Value動作する可能性があります) 。

編集このサイトで、あなたがやろうとしていることの回避策を提供する 別のスレッドを見つけましたが、自分で試したことはありません。

于 2009-12-14T15:34:25.690 に答える