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); }
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); }
private LogicalMainTrack GetEndLogicalMainTrack(GridRange gridRange) { var gridTrack = GridTracksMain.GetGridSpan(gridRange).EndTrack; return(GetEndLogicalMainTrack(gridTrack)); }