Saya ingin membuat efek slide halaman di WPF, kontrol Bingkai. Ini dia.
Pertama-tama, saya memasang bingkai dan 2 tombol untuk navigasi:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="25"/>
</Grid.ColumnDefinitions>
<Frame x:Name="frame" Source="page1.xaml" Grid.Column="1" />
<Button Grid.Column="0" Content="<" Click="GoPrevious"/>
<Button Grid.Column="2" Content=">" Click="GoNext"/>
</Grid>
Lalu saya membuat 3 Halaman dengan warna berbeda: Page1.xaml, Page2.xaml dan Page3.xaml
sekarang ketika mengklik tombol navigasi, cukup navigasikan ke uri:
frame.Navigate(new Uri("page2.xaml", UriKind.Relative));
Selesai. Sekarang saya ingin membuat setiap halaman meluncur saat dinavigasi (semua orang menginginkannya). Jadi rencana saya adalah mengatur Loaded EventTrigger setiap halaman:
<Page.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Duration="0:0:0.75" Storyboard.TargetProperty="Margin" From="500,0,-500,0" To="0" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="FrameworkElement.Unloaded">
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Duration="0:0:0.75" Storyboard.TargetProperty="Margin" From="0" To="-500,0,500,0" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Page.Triggers>
Dan itu berhasil! Semuanya berjalan baik-baik saja sampai saya menemukan halaman-halaman tersebut tidak berkesinambungan, artinya, ketika Anda menavigasi ke halaman2, halaman1 akan segera dibongkar, kemudian memulai acara pemuatan halaman2. Saya mencoba mengatur acara unload halaman1, tetapi tidak berhasil.
Yang saya inginkan adalah, ketika halaman1 mulai keluar, halaman2 harusnya langsung naik ke panggung, seperti kereta api satu per satu.
Jadi bagaimana cara melakukannya? Terima kasih.