0

左ボタンのタップイベントでボールを左方向に移動させ、右ボタンのタップイベントでボールを右方向に移動する必要があります。左右のボタンのテーピングでは正常に動作していますが、アプリケーションのロード時にストーリーボードが自動的に開始され、ボタンをタップしなくてもボールが 1 ステップ移動します。ストーリーボードが自動的に開始されるように制限するにはどうすればよいですか?

これは、ボールを左方向に 40 ピクセル移動する最初のストーリーボードです。

<EventTrigger>
<BeginStoryboard>
<Storyboard x:Name="ballstoryleft">
<DoubleAnimation  Storyboard.TargetName="balltrans" Storyboard.TargetProperty="TranslateX"
Duration="0:0:0.5" By="-40" FillBehavior="HoldEnd">
<DoubleAnimation.EasingFunction>
<ElasticEase Oscillations="0" Springiness="1" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>              

これは、ボールを右方向に 40 ピクセル移動する 2 番目のストーリーボードです。

<EventTrigger>
<BeginStoryboard>
<Storyboard x:Name="ballstoryright">
<DoubleAnimation  Storyboard.TargetName="balltrans" Storyboard.TargetProperty="TranslateX"
         Duration="0:0:0.5" By="40"    FillBehavior="HoldEnd">
<DoubleAnimation.EasingFunction>
<ElasticEase Oscillations="0" Springiness="1" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>

私はコードビハインドでこのコードを書きました:

private void imgleft_Tapped(object sender, TappedRoutedEventArgs e)
{
ballstoryleft.Begin();
}
private void imgright_Tapped(object sender, TappedRoutedEventArgs e)
{
ballstoryright.Begin();
}
4

2 に答える 2

1

どこに置きましたStoryboardsか?中にいるようEventTriggersです。アプリケーションのロード時にストーリーボードをトリガーしている可能性があります。

Storyboards両方をResourcesコレクションに入れるだけです:

<Page.Resources>
    <Storyboard x:Name="ballstoryleft">
        <DoubleAnimation Storyboard.TargetName="balltrans" Storyboard.TargetProperty="TranslateX" 
                         Duration="0:0:0.5" By="-40" FillBehavior="HoldEnd">
            <DoubleAnimation.EasingFunction>
                <ElasticEase Oscillations="0" Springiness="1" />
            </DoubleAnimation.EasingFunction>
        </DoubleAnimation>
    </Storyboard>
    <Storyboard x:Name="ballstoryright">
        <DoubleAnimation Storyboard.TargetName="balltrans" Storyboard.TargetProperty="TranslateX" 
                         Duration="0:0:0.5" By="40" FillBehavior="HoldEnd">
            <DoubleAnimation.EasingFunction>
                <ElasticEase Oscillations="0" Springiness="1" />
            </DoubleAnimation.EasingFunction>
        </DoubleAnimation>
    </Storyboard>
</Page.Resources>

タップでそれらをトリガーするコードが今と同じように機能するはずなのに、それらが自動的にトリガーされる理由はないはずです。

于 2013-03-21T05:53:50.743 に答える