コード例 #1
0
ファイル: HBFrame.cs プロジェクト: yvanwang1992/Huaban
        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);
        }
コード例 #2
0
        public void PushNextPage(BasePage newPage)
        {
            if (PageStack == null)
            {
                PageStack = new List <BasePage>()
                {
                    newPage
                };
            }
            else
            {
                PageStack.Add(newPage);
                DestroyPage();
            }

            PageStackIndex = PageStack.Count - 1;
            currentPage    = newPage;
            ShowPage();
        }
コード例 #3
0
ファイル: HBFrame.cs プロジェクト: mantislin/Huaban
        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);
        }