private void FixConsolidatedView()
 {
     consolidatedView.Children.Clear();
     foreach (ScrollSnapPointBase snapPoint in ScrollPresenterTestHooks.GetConsolidatedVerticalScrollSnapPoints(markupScrollPresenter))
     {
         Vector2 zone = ScrollPresenterTestHooks.GetVerticalSnapPointActualApplicableZone(markupScrollPresenter, snapPoint);
         zone.X = Math.Max(0, zone.X);
         zone.Y = Math.Min(snapPointColumnHeight, zone.Y);
         Rectangle rangeRectangle = new Rectangle();
         rangeRectangle.Width             = snapPointColumnWidth - 1;
         rangeRectangle.Height            = zone.Y - zone.X;
         rangeRectangle.Margin            = new Thickness(0, zone.X, 0, 0);
         rangeRectangle.Fill              = new SolidColorBrush(ScrollPresenterTestHooks.GetSnapPointVisualizationColor(snapPoint));
         rangeRectangle.VerticalAlignment = VerticalAlignment.Top;
         consolidatedView.Children.Add(rangeRectangle);
     }
 }
Ejemplo n.º 2
0
        public void CanShareSnapPointsInMultipleCollections()
        {
            ScrollPresenter scrollPresenter1 = null;
            ScrollPresenter scrollPresenter2 = null;
            ScrollPresenter scrollPresenter3 = null;

            ScrollSnapPoint scrollSnapPoint1 = null;
            ScrollSnapPoint scrollSnapPoint2 = null;
            ScrollSnapPoint scrollSnapPoint3 = null;

            RepeatedScrollSnapPoint repeatedScrollSnapPoint1 = null;
            RepeatedScrollSnapPoint repeatedScrollSnapPoint2 = null;
            RepeatedScrollSnapPoint repeatedScrollSnapPoint3 = null;

            ZoomSnapPoint zoomSnapPoint1 = null;
            ZoomSnapPoint zoomSnapPoint2 = null;
            ZoomSnapPoint zoomSnapPoint3 = null;

            RunOnUIThread.Execute(() =>
            {
                scrollPresenter1 = new ScrollPresenter();
                scrollPresenter2 = new ScrollPresenter();
                scrollPresenter3 = new ScrollPresenter();

                scrollSnapPoint1 = new ScrollSnapPoint(snapPointValue: 10, alignment: ScrollSnapPointsAlignment.Near);
                scrollSnapPoint2 = new ScrollSnapPoint(snapPointValue: 20, alignment: ScrollSnapPointsAlignment.Near);
                scrollSnapPoint3 = new ScrollSnapPoint(snapPointValue: 30, alignment: ScrollSnapPointsAlignment.Near);

                repeatedScrollSnapPoint1 = new RepeatedScrollSnapPoint(offset:  10, interval: 10, start:  10, end: 100, alignment: ScrollSnapPointsAlignment.Near);
                repeatedScrollSnapPoint2 = new RepeatedScrollSnapPoint(offset: 200, interval: 10, start: 110, end: 200, alignment: ScrollSnapPointsAlignment.Near);
                repeatedScrollSnapPoint3 = new RepeatedScrollSnapPoint(offset: 300, interval: 10, start: 210, end: 300, alignment: ScrollSnapPointsAlignment.Near);

                zoomSnapPoint1 = new ZoomSnapPoint(snapPointValue: 1);
                zoomSnapPoint2 = new ZoomSnapPoint(snapPointValue: 2);
                zoomSnapPoint3 = new ZoomSnapPoint(snapPointValue: 3);

                scrollPresenter1.HorizontalSnapPoints.Add(scrollSnapPoint1);
                scrollPresenter1.HorizontalSnapPoints.Add(scrollSnapPoint2);
                scrollPresenter1.VerticalSnapPoints.Add(scrollSnapPoint1);
                scrollPresenter1.VerticalSnapPoints.Add(scrollSnapPoint3);

                scrollPresenter2.HorizontalSnapPoints.Add(repeatedScrollSnapPoint1);
                scrollPresenter2.HorizontalSnapPoints.Add(repeatedScrollSnapPoint2);
                scrollPresenter2.VerticalSnapPoints.Add(repeatedScrollSnapPoint1);
                scrollPresenter2.VerticalSnapPoints.Add(repeatedScrollSnapPoint3);

                scrollPresenter1.ZoomSnapPoints.Add(zoomSnapPoint1);
                scrollPresenter1.ZoomSnapPoints.Add(zoomSnapPoint2);
                scrollPresenter2.ZoomSnapPoints.Add(zoomSnapPoint1);
                scrollPresenter2.ZoomSnapPoints.Add(zoomSnapPoint3);

                scrollPresenter3.HorizontalSnapPoints.Add(scrollSnapPoint1);
                scrollPresenter3.HorizontalSnapPoints.Add(scrollSnapPoint1);
            });

            IdleSynchronizer.Wait();

            RunOnUIThread.Execute(() =>
            {
                Vector2 horizontalScrollSnapPoint11ApplicableZone = ScrollPresenterTestHooks.GetHorizontalSnapPointActualApplicableZone(scrollPresenter1, scrollSnapPoint1);
                Vector2 verticalScrollSnapPoint11ApplicableZone   = ScrollPresenterTestHooks.GetVerticalSnapPointActualApplicableZone(scrollPresenter1, scrollSnapPoint1);
                Log.Comment("horizontalScrollSnapPoint11ApplicableZone=" + horizontalScrollSnapPoint11ApplicableZone.ToString());
                Log.Comment("verticalScrollSnapPoint11ApplicableZone=" + verticalScrollSnapPoint11ApplicableZone.ToString());

                Vector2 horizontalScrollSnapPoint21ApplicableZone = ScrollPresenterTestHooks.GetHorizontalSnapPointActualApplicableZone(scrollPresenter2, repeatedScrollSnapPoint1);
                Vector2 verticalScrollSnapPoint21ApplicableZone   = ScrollPresenterTestHooks.GetVerticalSnapPointActualApplicableZone(scrollPresenter2, repeatedScrollSnapPoint1);
                Log.Comment("horizontalScrollSnapPoint21ApplicableZone=" + horizontalScrollSnapPoint21ApplicableZone.ToString());
                Log.Comment("verticalScrollSnapPoint21ApplicableZone=" + verticalScrollSnapPoint21ApplicableZone.ToString());

                Vector2 zoomSnapPoint11ApplicableZone = ScrollPresenterTestHooks.GetZoomSnapPointActualApplicableZone(scrollPresenter1, zoomSnapPoint1);
                Vector2 zoomSnapPoint21ApplicableZone = ScrollPresenterTestHooks.GetZoomSnapPointActualApplicableZone(scrollPresenter2, zoomSnapPoint1);
                Log.Comment("zoomSnapPoint11ApplicableZone=" + zoomSnapPoint11ApplicableZone.ToString());
                Log.Comment("zoomSnapPoint21ApplicableZone=" + zoomSnapPoint21ApplicableZone.ToString());

                int combinationCount11 = ScrollPresenterTestHooks.GetHorizontalSnapPointCombinationCount(scrollPresenter1, scrollSnapPoint1);
                int combinationCount31 = ScrollPresenterTestHooks.GetHorizontalSnapPointCombinationCount(scrollPresenter3, scrollSnapPoint1);
                Log.Comment("combinationCount11=" + combinationCount11);
                Log.Comment("combinationCount31=" + combinationCount31);

                Log.Comment("Expecting different applicable zones for ScrollSnapPoint in horizontal and vertical collections");
                Verify.AreEqual <float>(15.0f, horizontalScrollSnapPoint11ApplicableZone.Y);
                Verify.AreEqual <float>(20.0f, verticalScrollSnapPoint11ApplicableZone.Y);

                Log.Comment("Expecting identical applicable zones for RepeatedScrollSnapPoint in horizontal and vertical collections");
                Verify.AreEqual <float>(10.0f, horizontalScrollSnapPoint21ApplicableZone.X);
                Verify.AreEqual <float>(10.0f, verticalScrollSnapPoint21ApplicableZone.X);
                Verify.AreEqual <float>(100.0f, horizontalScrollSnapPoint21ApplicableZone.Y);
                Verify.AreEqual <float>(100.0f, verticalScrollSnapPoint21ApplicableZone.Y);

                Log.Comment("Expecting different applicable zones for ZoomSnapPoint in two zoom collections");
                Verify.AreEqual <float>(1.5f, zoomSnapPoint11ApplicableZone.Y);
                Verify.AreEqual <float>(2.0f, zoomSnapPoint21ApplicableZone.Y);

                Log.Comment("Expecting different combination counts for ScrollSnapPoint in two horizontal collections");
                Verify.AreEqual <int>(0, combinationCount11);
                Verify.AreEqual <int>(1, combinationCount31);
            });
        }