1

コントロールの Loaded イベントで実行したいアニメーションがいくつかあります。

 <EventTrigger RoutedEvent="Button.Loaded">
     <BeginStoryboard>
         <Storyboard>                                
             <DoubleAnimation ...
             <DoubleAnimation ...
             <DoubleAnimation ...

私がやりたいことは、最初の 2 つを並行して実行し (これがデフォルトの動作のようです)、最後にそれらが終了したら実行することです。これは可能ですか?

4

1 に答える 1

1

Blend の「インタラクティブ」DLL は、このシナリオをサポートします。最初のストーリーボードにStoryboardCompletedTriggerを設定し、2 番目にControlStoryboardActionを設定します。例 (これには System.Windows.Interactivity.dll および Microsoft.Expression.Interactions.dll への参照が必要であることに注意してください):

<Grid x:Name="LayoutRoot"
     xmlns:em="clr-namespace:Microsoft.Expression.Interactivity.Media;assembly=Microsoft.Expression.Interactions"
     xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
>
    <Grid.Resources>
        <Storyboard x:Name="FirstStoryboard">
            <DoubleAnimation ...
            <DoubleAnimation ...
        </Storyboard>

        <Storyboard x:Name="SecondStoryboard">
            <DoubleAnimation ...
        </Storyboard>
    </Grid.Resources>

    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
            <em:ControlStoryboardAction Storyboard="{StaticResource FirstStoryboard}" />
        </i:EventTrigger>

        <em:StoryboardCompletedTrigger Storyboard="{StaticResource FirstStoryboard}">
            <em:ControlStoryboardAction Storyboard="{StaticResource SecondStoryboard}" />
        </em:StoryboardCompletedTrigger>
    </i:Interaction.Triggers>
</Grid>
于 2013-10-17T16:57:37.840 に答える