Exemplo n.º 1
0
 private void NaviMenu_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
 {
     if (args.InvokedItem is ReleaseIndexInfo item)
     {
         NaviContent.Navigate(typeof(ChannelVersionPage), item);
     }
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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;
        }