ある画像を完全にフェードアウトさせてから、ストーリーボードを使用して別の画像をフェードインしようとしていますが、理解できません。フェードアウト部分は機能していますが、画像を変更してスムーズにフェードインする方法が見つかりません。ボタンを1回押すだけでフェードインし、画像を動的に変更する方法をまだ理解していません。ソースパスを変更しても画像が更新されません。私は、コードビハインドではなく、できるだけ多くのXAMLを使用してこれらすべてを実行しようとしています。
編集 私はそれをフェードバックさせる方法を理解しました、しかし、画像ソースを変更しても画像は変更されません。これについては助けが必要です。
これは私が今持っているものです
<Window.Resources>
<Storyboard x:Key="FadeOut" Completed="Storyboard1_Completed">
<DoubleAnimation From="1" To="0" Storyboard.TargetName ="Image1" Storyboard.TargetProperty="(UIElement.Opacity)" Duration="0:0:5"/>
</Storyboard>
<Storyboard x:Key="FadeIn" Name="FadeIn">
<DoubleAnimation From="0" To="1" Storyboard.TargetName ="Image1" Storyboard.TargetProperty="(UIElement.Opacity)" Duration="0:0:5"/>
</Storyboard>
</Window.Resources>
<Grid HorizontalAlignment="Center">
<Image Source="{Binding Path=imagePath}" Margin="0,0,0,28" Name="Image1"/>
<Button Content="Fade" Height="23" Margin="0,284,341,0" Name="button1" Width="162" Click="button1_Click"/>
</Grid>
C#
public partial class MainWindow : Window
{
public String imagePath { get; set; }
public MainWindow()
{
imagePath = "1.png";
InitializeComponent();
}
private void Storyboard1_Completed(object sender, EventArgs e)
{
imagePath = "2.png";
Storyboard stbFadeOut = (Storyboard)FindResource("FadeIn");
stbFadeOut.Begin();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Storyboard stbFadeOut = (Storyboard)FindResource("FadeOut");
stbFadeOut.Begin();
}
}