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 или какой триггер применить чтобы запускать анимацию при каждой смене картинок?