Я хочу создать эффект слайда страницы в WPF, Frame control. вот так.
Первым делом ставлю рамку и 2 кнопки для навигации:
<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>
Затем я создаю 3 страницы в разных цветах: Page1.xaml, Page2.xaml и Page3.xaml.
теперь, когда нажимаете кнопку навигации, просто перейдете к uri:
frame.Navigate(new Uri("page2.xaml", UriKind.Relative));
Выполнено. Теперь я хочу, чтобы каждая страница скользила при навигации (это хотят все). Итак, я планирую установить для каждой страницы Loaded EventTrigger:
<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>
И это работает! Все идет нормально, пока я не обнаружил, что страницы не являются непрерывными, это означает, что когда вы переходите на страницу 2, страница 1 выгружается немедленно, чем начинается событие загрузки страницы 2. Я попытался установить событие выгрузки page1, но не сработало.
я хочу, чтобы когда страница 1 начала выходить, страница 2 должна была сразу же выходить на сцену, как поезд, один за другим.
Итак, как это сделать? Спасибо.