private void NaviMenu_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args) { if (args.InvokedItem is ReleaseIndexInfo item) { NaviContent.Navigate(typeof(ChannelVersionPage), item); } }
private bool NavigateBack() { if (NaviContent.CanGoBack) { NaviContent.GoBack(); if (navimenuNaviHistory.TryPop(out var index)) { if (index == -1) { return(true); } if (index != NaviMenu.MenuItems.Count) { NaviMenu.SelectedItem = NaviMenu.MenuItems[index]; } else { NaviMenu.SelectedItem = NaviMenu.SettingsItem; } lastSelectedItemIndex = index; } return(true); } return(false); }
private void NavigateToPage(Type pageType, Type parameterType, object parameter) { var param = parameterType.GetConstructor(new[] { typeof(CommonParameters) }) .Invoke(new[] { new CommonParameters(UpdateUserData, viewModel.UserData, ShowMessage, NavigateToPage) }); parameter.CopyTo(param); // Update navi history and last selected index of navimenu navimenuNaviHistory.Push(lastSelectedItemIndex); NaviContent.Navigate(pageType, param, new DrillInNavigationTransitionInfo()); }
private void NavigateToPage(object naviItem, bool isSettingsPage, NavigationViewPaneDisplayMode paneDisplayMode) { if (!(naviItem is NavigationViewItem item)) { return; } var targetInfo = GetTargetNaviInfo(item.Name, isSettingsPage); if (targetInfo.Page == null || targetInfo.Page == NaviContent.Content?.GetType()) { return; } // Get current selected index of navimenu var index = NaviMenu.MenuItems.IndexOf(item); if (isSettingsPage) { item.Content = App.CultureResource.GetString("NaviMenu_Item_Settings/Content"); index = NaviMenu.MenuItems.Count; } // Set up page transition effect base on pane display mode NavigationTransitionInfo transition; if (paneDisplayMode == NavigationViewPaneDisplayMode.Top) { transition = new SlideNavigationTransitionInfo { Effect = lastSelectedItemIndex <= index ? SlideNavigationTransitionEffect.FromRight : SlideNavigationTransitionEffect.FromLeft }; } else { transition = new DrillInNavigationTransitionInfo(); } // Update navi history and last selected index of navimenu if (lastSelectedItemIndex != -1) { navimenuNaviHistory.Push(lastSelectedItemIndex); } lastSelectedItemIndex = index; // Navigate to page NaviContent.Navigate(targetInfo.Page, targetInfo.Parameter, transition); // Set current selected item for navimenu NaviMenu.SelectedItem = naviItem; }