0

画像の幅をアニメーション化するストーリーボードがあります。エクスプレッション ブレンドを使用してアニメーションを作成しました。

<Storyboard x:Key="Storyboard1">
    <DoubleAnimationUsingKeyFrames 
             Storyboard.TargetProperty="(FrameworkElement.Width)" 
             Storyboard.TargetName="imageFoo">
            <EasingDoubleKeyFrame KeyTime="0:0:0.9" Value="335">
                <EasingDoubleKeyFrame.EasingFunction>
                    <BackEase EasingMode="EaseOut"/>
                </EasingDoubleKeyFrame.EasingFunction>
            </EasingDoubleKeyFrame>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

問題は、イメージimageFooだけでなく、アプリケーション内のすべてのイメージにそのストーリーボードを割り当てたいことです。マウスが画像を入力したときにそのアニメーションを開始したいと思います。どうやってやるの?

4

1 に答える 1

2

ストーリーボードからターゲット名を削除し、トリガーをスタイルに移動する必要があります。ありがたいことに、これを行うために必要なコードビハインドはありません

App.xaml ファイル (または任意のリソース コレクション) 内。

 <Application.Resources>
        <Style TargetType="{x:Type Image}">
            <Style.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)">
                                <EasingDoubleKeyFrame KeyTime="0:0:0.9" Value="335">
                                    <EasingDoubleKeyFrame.EasingFunction>
                                        <BackEase EasingMode="EaseOut"/>
                                    </EasingDoubleKeyFrame.EasingFunction>
                                </EasingDoubleKeyFrame>
                            </DoubleAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </Application.Resources>

x:Key を指定せずにスタイルを宣言し、単純に TargetType を指定することで、基本的に、そのタイプを持つビジュアル ツリー内のすべての要素に適用することになっていることを WPF に伝えます。

于 2012-05-31T17:58:42.703 に答える