Это в основном из памяти, поэтому может быть небольшая ошибка, но в основном вы захотите вставить два изображения и анимировать их значения непрозрачности:
<Grid>
<Image x:Name="imgOne" Source="image1.png">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="imgOne"
Storyboard.TargetProperty="(Image.Opacity)"
To="0"
Duration="0:0:1"
AutoReverse="True"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
<Image x:Name="imgTwo" Source="image1.png" Opacity="0">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="imgTwo"
Storyboard.TargetProperty="(Image.Opacity)"
To="1"
Duration="0:0:1"
AutoReverse="True"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
</Grid>
Строго говоря, вы, вероятно,первая анимация не нужна, если второе изображение не имеет прозрачных областей или не полностью покрывает первое.
Кроме того, YMMV - это будет чем-то вроде пожирателя ресурсов, так как это происходит так быстро ичасто.