Exemplo n.º 1
0
 private void ScrollToMain(LogicalExtent scrollTo, GridPlacement placement)
 {
     _scrollToMain          = scrollTo;
     _scrollToMainPlacement = placement;
     SetScrollDeltaMain(0, false);
     InvalidateMeasure();
 }
Exemplo n.º 2
0
 private void AdjustScrollToMain(double delta, bool assertRealized)
 {
     _scrollToMain = Translate(ScrollToMainExtent + delta);
     SetScrollDeltaMain(0, false);
     CoerceScrollToMain();
     if (assertRealized)
     {
         AssertAdjustedScrollToMain();
     }
 }
Exemplo n.º 3
0
        private double Translate(LogicalExtent logicalExtent)
        {
            var gridExtent = logicalExtent.GridExtent;

            if (gridExtent >= MaxGridExtentMain)
            {
                return(MaxGridExtentMain == 0 ? 0 : GetLogicalMainTrack(MaxGridExtentMain - 1).EndExtent);
            }
            else
            {
                var span = GetLogicalMainTrack(gridExtent).ExtentSpan;
                return(span.Start + span.Length * logicalExtent.Fraction);
            }
        }
Exemplo n.º 4
0
        private void CoerceScrollToMain()
        {
            var min = MinScrollToMain;

            if (_scrollToMain.Value < min.Value)
            {
                _scrollToMain = min;
            }
            var max = MaxScrollToMain;

            if (_scrollToMain.Value > max.Value)
            {
                _scrollToMain = max;
            }
        }