Я написал код, в котором я могу перейти на разные страницы и вернуться обратно, используя метод GoBack ().
Моя проблема в том, что при переходе на страницу появляется синяя полоса рядом с названием выбранного элемента в меню навигации. Но когда я возвращаюсь, выбранный пункт не меняется. Как я могу это сделать?
Я надеюсь, что смог объяснить. Если нет, рассмотрите добавленные мной изображения.
Спасибо.
Вот мой код.
1012 * XAML *
<NavigationView x:Name="navSample"
IsPaneOpen="False"
SelectionChanged="NavSample_SelectionChanged"
SelectionFollowsFocus="Enabled"
IsBackButtonVisible="Auto"
BackRequested="NavSample_BackRequested">
<NavigationView.MenuItems>
<NavigationViewItem Icon="Play" Content="Item1" x:Name="SamplePage1Item" />
<NavigationViewItem Icon="Save" Content="Item2" x:Name="SamplePage2Item" />
<NavigationViewItem Icon="Refresh" Content="Item3" x:Name="SamplePage3Item" />
</NavigationView.MenuItems>
<Frame x:Name="contentFrame"/>
</NavigationView>
C #
private void NavSample_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
if (navSample.SelectedItem == SamplePage1Item)
{
contentFrame.Navigate(typeof(SamplePage1));
}
else if (navSample.SelectedItem == SamplePage2Item)
{
contentFrame.Navigate(typeof(SamplePage2));
}
else if (navSample.SelectedItem == SamplePage3Item)
{
contentFrame.Navigate(typeof(SamplePage3));
}
else if (navSample.SelectedItem == navSample.SettingsItem)
{
contentFrame.Navigate(typeof(SamplePage2));
}
if (contentFrame.CanGoBack)
{
navSample.IsBackEnabled = true;
}
}
private void NavSample_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
{
if (contentFrame.CanGoBack)
{
contentFrame.GoBack();
}
}
Возможно, эти изображения помогут вам лучше понять.
Использование меню навигации для просмотра страницы
Использование меню навигации для просмотра страницы (2)
Использование кнопки «назад» и ожидание не оправдывается