コード例 #1
0
        private int GetPageTailContainerOrdinal(bool enforceCurrent)
        {
            if (ContainerViewList.Count == 0)
            {
                return(-1);
            }

            var containerOrdinal = ContainerViewList.Last.ContainerOrdinal;
            var endTrack         = GridTracksMain.GetGridSpan(Template.ContainerRange).EndTrack;
            var endGridExtent    = new LogicalMainTrack(endTrack, ContainerViewList.Last).EndGridExtent;
            var isClipped        = IsTailClippedMain(endGridExtent);

            if (PreviousContainerAsPageTail(containerOrdinal, isClipped, enforceCurrent))
            {
                containerOrdinal--;
                endGridExtent -= ContainerTracksCountMain;
                isClipped      = false;
            }

            if (enforceCurrent && isClipped)
            {
                ScrollToMain(endGridExtent - 1, 1, GridPlacement.Tail, false);
            }
            return(containerOrdinal);
        }
コード例 #2
0
        private int GetPageHeadContainerOrdinal(bool enforceCurrent)
        {
            if (ContainerViewList.Count == 0)
            {
                return(-1);
            }

            var containerOrdinal = ContainerViewList.First.ContainerOrdinal;
            var startTrack       = GridTracksMain.GetGridSpan(Template.ContainerRange).StartTrack;
            var startGridExtent  = new LogicalMainTrack(startTrack, ContainerViewList.First).StartGridExtent;
            var isClipped        = IsHeadClippedMain(startGridExtent);

            if (NextContainerAsPageHeader(containerOrdinal, isClipped, enforceCurrent))
            {
                containerOrdinal++;
                startGridExtent += ContainerTracksCountMain;
                isClipped        = false;
            }

            if (enforceCurrent && isClipped)
            {
                ScrollToMain(startGridExtent, 0, GridPlacement.Head, false);
            }
            return(containerOrdinal);
        }
コード例 #3
0
        private LogicalMainTrack GetEndLogicalMainTrack(GridRange gridRange)
        {
            var gridTrack = GridTracksMain.GetGridSpan(gridRange).EndTrack;

            return(GetEndLogicalMainTrack(gridTrack));
        }