1

アプリケーションの起動時にトランジション アニメーションを使用しています。

<Storyboard x:Key="InTransition">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ContentGrid" Storyboard.TargetProperty="(UIElement.Opacity)">
                <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="00:00:05" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="00:00:05.5000000" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ContentGrid" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
                <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-72"/>
                <SplineDoubleKeyFrame KeyTime="00:00:05" Value="-157"/>
                <SplineDoubleKeyFrame KeySpline="0.5,0,0.5,1" KeyTime="00:00:05.5000000" Value="0"/>
            </DoubleAnimationUsingKeyFrames>
</Storyboard>

として開始すると、これはうまく機能EventTrigger RoutedEvent="FrameworkElement.Loaded"しますが、ビューモデルのプロパティにバインドしたいと思いIsInitializedます。問題は許可さWindows.TriggersれていませんDataTrigger

どうやってやるの?

4

1 に答える 1

4

コレクションで aDataTriggerを使用できないことは正しいです。代わりに、コレクションTriggersを使用する必要があります。UIElement.Style.Triggers次に、要素を使用してDataTrigger.EnterActions要素をホストできますStoryboard

<Window ...>
    <Window.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding YourProperty}" Value="True">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard ... />
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Style>
</Window>
于 2014-03-14T15:46:10.523 に答える