2011-07-01 9 views
0

基本的には、Iveはキャンバスに多角形の負荷がかかっています(その数は、ユーザーが望むすべてのポリゴンに対してキャンバスをクリックすることによって決まります)。ユーザーが「再生」ボタンをクリックすると、これらのポリゴンをアニメートすることができます。これを行う方法に関するアイデア?それとも可能かどうか?これまでは、アプリケーションを起動する前に作成された要素にストーリーボードを適用する方法しか学習していませんでした。アプリケーション開始後に作成される要素にストーリーボードを適用することは可能ですか?

答えて

0

うまくいけば、これが役立ちます:Creating an Animation in Procedural Code

あなたはポリゴンごとにストーリーボードのインスタンスのいずれかが必要(あなたが独立して、それらを制御する場合)、または使用すると、1つのストーリーボードに、複数のDoubleAnimation Sを追加する必要があり、それぞれが1つのポリゴンのxをターゲットかyの位置。

これは、表示するアニメーションの種類によって異なります。あなたは精緻化できますか?ここで

0

は一例です...

<Window.Resources> 
    <Storyboard x:Key="storyboard"> 
        <DoubleAnimation Storyboard.TargetName="someElement" Storyboard.TargetProperty="Angle" From="0.00" To="-90" Duration="00:00:0.5" AccelerationRatio="1" ></DoubleAnimation> 
        <DoubleAnimation Storyboard.TargetName="someOtherElement" Storyboard.TargetProperty="Angle" From="90" To="0" Duration="00:00:0.5" DecelerationRatio="0.5" ></DoubleAnimation> 
       </Storyboard> 
</Window.Resources> 

Storyboard sb = (Storyboard)this.FindResource("storyboard"); 
DoubleAnimation da1 = (DoubleAnimation)sb.Children[0]; 
DoubleAnimation da2 = (DoubleAnimation)sb.Children[1]; 

da1.SetValue(Storyboard.TargetNameProperty, "changeTargetElement"); 
da2.SetValue(Storyboard.TargetNameProperty, "changeOtherTargetElement"); 
sb.Begin(this, true); 
関連する問題