Beispiel #1
0
        public void SetHorizontalOffset(double offset)
        {
            var extentWidth   = ExtentWidth;
            var viewportWidth = ViewportWidth;

            var scrollX = ValidateInputOffset(offset, 0, extentWidth - viewportWidth);

            if (!NumericExtensions.AreClose(HorizontalOffset, scrollX))
            {
                HorizontalOffset = scrollX;
            }

            UpdateTransform();
        }
Beispiel #2
0
        public void SetVerticalOffset(double offset)
        {
            var extentHeight   = ExtentHeight;
            var viewportHeight = ViewportHeight;

            var scrollY = ValidateInputOffset(offset, 0, extentHeight - viewportHeight);

            if (!NumericExtensions.AreClose(VerticalOffset, scrollY))
            {
                VerticalOffset = scrollY;
            }

            UpdateTransform();
        }
Beispiel #3
0
        internal bool SetHorizontalOffsetInternal(double offset)
        {
            var extentWidth   = ExtentWidth;
            var viewportWidth = ViewportWidth;

            var scrollX = ValidateInputOffset(offset, 0, extentWidth - viewportWidth);

            if (!NumericExtensions.AreClose(HorizontalOffset, scrollX))
            {
                HorizontalOffset = scrollX;
            }

            UpdateTransform();

            return(scrollX == offset);
        }
Beispiel #4
0
        internal bool SetVerticalOffsetInternal(double offset)
        {
            var extentHeight   = ExtentHeight;
            var viewportHeight = ViewportHeight;

            var scrollY = ValidateInputOffset(offset, 0, extentHeight - viewportHeight);

            if (!NumericExtensions.AreClose(VerticalOffset, scrollY))
            {
                VerticalOffset = scrollY;
            }

            UpdateTransform();

            return(scrollY == offset);
        }
Beispiel #5
0
        internal bool Set(
            double?horizontalOffset = null,
            double?verticalOffset   = null,
            float?zoomFactor        = null,
            bool disableAnimation   = true,
            bool isIntermediate     = false)
        {
            var success = true;

            if (horizontalOffset is double hOffset)
            {
                var extentWidth   = ExtentWidth;
                var viewportWidth = ViewportWidth;
                var scrollX       = ValidateInputOffset(hOffset, 0, extentWidth - viewportWidth);

                success &= scrollX == hOffset;

                if (!NumericExtensions.AreClose(HorizontalOffset, scrollX))
                {
                    HorizontalOffset = scrollX;
                }
            }

            if (verticalOffset is double vOffset)
            {
                var extentHeight   = ExtentHeight;
                var viewportHeight = ViewportHeight;
                var scrollY        = ValidateInputOffset(vOffset, 0, extentHeight - viewportHeight);

                success &= scrollY == vOffset;

                if (!NumericExtensions.AreClose(VerticalOffset, scrollY))
                {
                    VerticalOffset = scrollY;
                }
            }

            Apply(disableAnimation, isIntermediate);

            return(success);
        }