Я мог бы сделать каждый экран страницей (не слишком заинтересован в этом из-за проблем с задним стеком)
Нелинейная навигация Сервис может помочь вам с обратнойbutton.
Я мог бы использовать одну страницу с элементом управления вкладками
Я создал одно приложение в стиле мастера в WPF, используя рестайлинговый элемент управления Tab.Было немного грязно, хотя работает хорошо.
Сначала вам нужно спроектировать его и рассмотреть несколько сценариев.Что происходит, когда пользователь нажимает кнопку «Назад», запускает кнопку или кто-то звонит пользователю?(когда приложение захоронено и пользователь нажимает кнопку «назад», ОС возвращает последнюю страницу).Навигация очень сложна (дерево решений)?
Сделайте только одну страницу с сеткой с 3 сетками / панелями стека внутри.Разместите их горизонтально с полями 0;480;960. Одновременно может быть показана только одна внутренняя сетка.Вы можете увидеть пример здесь (я пошутил для друзей: P).
Я использовал стековые панели с составным преобразованием.
<StackPanel Name="questionPanel" Grid.Row="0" HorizontalAlignment="Center">
<StackPanel.RenderTransform>
<CompositeTransform TranslateX="480"></CompositeTransform>
</StackPanel.RenderTransform>
с анимацией
<UserControl.Resources>
<Storyboard x:Name="centerPanelIn">
<DoubleAnimation Duration="0:0:0.3" BeginTime="0:0:0.6" To="0"
Storyboard.TargetName="centerPanel"
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)">
<DoubleAnimation.EasingFunction>
<ExponentialEase Exponent="6.0" EasingMode="EaseOut"></ExponentialEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
Когда пользователь нажимает кнопку, добавляется событие Completed.
private void Button_Click(object sender, RoutedEventArgs e)
{
centerPanelOut.Begin();
centerPanelOut.Completed += new EventHandler(centerPanelOut_Completed);
}
Этот подход имеет преимущество, потому что все на одной странице, и анимация дает хороший UX.Для более сложного мастера рассмотрите возможность создания собственного UserControl.