C# WPF, Анимация смены Image

есть WPF приложение на MVVM Caliburn.Micro. На одном View нужно менять картинки при нажатии на кнопку, при смене картинки должна быть анимация.

View:

    <Style x:Key="ImageStyle" TargetType="Image">
        <Setter Property="LayoutTransform">
            <Setter.Value>
                <ScaleTransform />
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <EventTrigger RoutedEvent="Image.Loaded">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ParallelTimeline>
                                <DoubleAnimation
                                    Storyboard.TargetProperty="Opacity"
                                    From="0.7"
                                    To="1"
                                    Duration="0:0:1.5"
                                    />
                                <DoubleAnimation
                                    Storyboard.TargetProperty="LayoutTransform.ScaleY"
                                    From="0.5"
                                    To="1"
                                    Duration="0:0:1.5"
                                   />
                            </ParallelTimeline>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>
        </Style.Triggers>
    </Style>


    <Image Stretch="UniformToFill" Source="{Binding CurrentImage, Mode=OneWay}" Style="{StaticResource ImageStyle}"/>   

ViewModel:

private BitmapImage  _currentImage;
public BitmapImage CurrentImage
{
    get => _currentImage;
    set
    {
        _currentImage = value;
        NotifyOfPropertyChange();
    }
}

Опускаю код с кнопками, который просто берез из БД нужную картинку и присваивает в CurrentImage. Binding работает нормально, картинки меняются, но анимация работает только при загрузке ПЕРВОЙ картинки, при дальнейшей смене картинок анимация не запускается.

RoutedEvent="Image.Loaded" - я думал будет работать при смене картинок. Какое событие RoutedEvent или какой триггер применить чтобы запускать анимацию при каждой смене картинок?


Ответы (0 шт):