Я искал способ изменить изображение во время раскадровки, а точнее, изменить свойство Source
изображения, чтобы указать на новый ресурс изображения. Кажется, что есть StringAnimationUsingKeyFrames
и a DiscreteStringKeyFrame
, но это не работает (насколько я могу судить), поскольку свойство Source изображения имеет тип ImageSource
Моя текущая раскадровка выглядит так
<Storyboard x:Key="TransitionImage">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="image"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
<SplineDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0.2"/>
<SplineDoubleKeyFrame KeyTime="00:00:01.5000000" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<StringAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="image"
Storyboard.TargetProperty="(Image.Source)">
<!-- This does not work -->
<DiscreteStringKeyFrame KeyTime="00:00:00.7000000" Value="check_24.png"/>
</StringAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="image"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
<SplineDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0.2"/>
<SplineDoubleKeyFrame KeyTime="00:00:01.5000000" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
а изображение
<Image x:Name="image"
Source="delete_24.png"
Width="32" Height="32"
Margin="8"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
Можно ли изменить Source
изображения как часть раскадровки или мне повезло?