private void InvokeOnScroll() { var shouldReportNegativeOffsets = (TemplatedParent as ScrollViewer)?.ShouldReportNegativeOffsets ?? false; // iOS can return, eg, negative values for offset, whereas Windows never will, even for 'elastic' scrolling var clampedOffset = shouldReportNegativeOffsets ? ContentOffset : ContentOffset.Clamp(CGPoint.Empty, UpperScrollLimit); (TemplatedParent as ScrollViewer)?.OnScrollInternal(clampedOffset.X, clampedOffset.Y, isIntermediate: _isInAnimatedScroll); }
private void InvokeOnScroll() { var scroller = GetParentScrollViewer(); if (scroller is null) { return; } // iOS can return, eg, negative values for offset, whereas Windows never will, even for 'elastic' scrolling var clampedOffset = scroller.ShouldReportNegativeOffsets ? ContentOffset : ContentOffset.Clamp(CGPoint.Empty, UpperScrollLimit); scroller.OnScrollInternal(clampedOffset.X, clampedOffset.Y, isIntermediate: _isInAnimatedScroll); }