Windows Phone 7 で、ストーリーボードを手書き


Canvas のTranslateY をストーリーボードでアニメーションする際の注意です。


<Canvas Name=”canvas” >
    <Canvas.RenderTransform>
        <CompositeTransform>
            <CompositeTransform.TranslateY>100

            </CompositeTransform.TranslateY>
        </CompositeTransform>
    </Canvas.RenderTransform>
・・・とRenderTransform を定義しておくか、コードで
canvas.RenderTransform = new CompositeTransform();
のように、RenderTransform を追加しておかないと、ターゲットが存在しないため、

ArgumentException “パラメータが正しくありません” というわけのわからない例外になります。


それから、SetTarget で、canvas を指定しただけだと、ターゲットの指定が不十分でアニメーションが動きません。次のように、canvas.RenderTransform まで指定する必要があります。

Storyboard.SetTarget(daukf1, canvas.RenderTransform);


Storyboard sb1 = new Storyboard();

canvas.RenderTransform = new CompositeTransform();

DoubleAnimationUsingKeyFrames daukf1 = new DoubleAnimationUsingKeyFrames();

LinearDoubleKeyFrame ldkf1 = new LinearDoubleKeyFrame();
ldkf1.KeyTime = KeyTime.FromTimeSpan(new TimeSpan(0, 0, 0));
ldkf1.Value = 0;

LinearDoubleKeyFrame ldkf2 = new LinearDoubleKeyFrame();
ldkf2.KeyTime = KeyTime.FromTimeSpan(new TimeSpan(0, 0, 10));
ldkf2.Value = -1300;

daukf1.KeyFrames.Add(ldkf1);
daukf1.KeyFrames.Add(ldkf2);

Storyboard.SetTarget(daukf1, canvas.RenderTransform);
Storyboard.SetTargetProperty(daukf1, new PropertyPath(CompositeTransform.TranslateYProperty));

sb1.Children.Add(daukf1);
sb1.RepeatBehavior = RepeatBehavior.Forever;
sb1.Begin();

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。