示例#1
0
        public void GoBack()
        {
            if (!CanGoBack)
            {
                return;
            }
            var page = PageStack[PageIndex];
            var args = new HBNavigatingCancelEventArgs();

            page.OnNavigatingFrom(args);

            page.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            PageStack.Remove(page);
            FrameGrid.Children.Remove(page);

            page.OnNavigatedFrom(new HBNavigationEventArgs());

            GC.SuppressFinalize(page);
            GC.Collect();
            page.Content = null;
            page         = null;
            PageIndex--;
            if (PageIndex >= 0)
            {
                page = PageStack[PageIndex];
                //page.OnNavigatedTo(new HBNavigationEventArgs() { NavigationMode = NavigationMode.Back });
            }
            else
            {
                this.Visibility = Visibility.Collapsed;
            }
        }
示例#2
0
        private HBControl CreatePage(Type type)
        {
            if (PageIndex <= PageStack.Count - 1)
            {
                for (int i = PageStack.Count - 1; i > PageIndex; i--)
                {
                    var _page = PageStack[i];
                    PageStack.Remove(_page);
                    FrameGrid.Children.Remove(_page);
                }
            }
            var page = Activator.CreateInstance(type) as HBControl;

            FrameGrid.Children.Add(page);
            PageStack.Add(page);
            PageIndex++;
            return(page);
        }
示例#3
0
        private HBControl CreatePage(Type type, string targetName = null)
        {
            if (PageIndex <= PageStack.Count - 1)
            {
                for (int i = PageStack.Count - 1; i > PageIndex; i--)
                {
                    var _page = PageStack[i];
                    PageStack.Remove(_page);
                    FrameGrid.Children.Remove(_page);
                }
            }
            if (PageStack.Count > 0 && !string.IsNullOrEmpty(targetName) && PageStack[PageIndex].TargetName == targetName)
            {
                return(PageStack[PageIndex]);
            }

            var page = Activator.CreateInstance(type) as HBControl;

            page.TargetName = targetName;
            FrameGrid.Children.Add(page);
            PageStack.Add(page);
            PageIndex++;
            return(page);
        }