Example #1
0
        Size MeasureAndArrange(IGridLayout grid, double widthConstraint = double.PositiveInfinity, double heightConstraint = double.PositiveInfinity)
        {
            var manager      = new GridLayoutManager(grid);
            var measuredSize = manager.Measure(widthConstraint, heightConstraint);

            manager.ArrangeChildren(new Rectangle(Point.Zero, measuredSize));

            return(measuredSize);
        }
Example #2
0
        public void CanSpanAbsoluteRows()
        {
            var grid  = CreateGridLayout(rows: "100,100", columns: "auto");
            var view0 = CreateTestView(new Size(100, 150));

            AddChildren(grid, view0);
            SetLocation(grid, view0, rowSpan: 2);
            var manager = new GridLayoutManager(grid);

            manager.Measure(100, 200);
            manager.ArrangeChildren(new Rectangle(0, 0, 100, 200));

            // View should be arranged to span both rows (200 points)
            AssertArranged(view0, 0, 0, 100, 200);
        }
Example #3
0
        public void EmptyAutoColumnsHaveNoWidth()
        {
            var grid  = CreateGridLayout(columns: "100, auto, 100");
            var view0 = CreateTestView(new Size(100, 100));
            var view2 = CreateTestView(new Size(100, 100));

            AddChildren(grid, view0, view2);
            SetLocation(grid, view0);
            SetLocation(grid, view2, col: 2);

            var manager = new GridLayoutManager(grid);
            var measure = manager.Measure(double.PositiveInfinity, double.PositiveInfinity);

            manager.ArrangeChildren(new Rectangle(0, 0, measure.Width, measure.Height));

            // Because the auto column has no content, we expect it to have width zero
            Assert.Equal(100 + 100, measure.Width);

            // Verify the offset for the third column
            AssertArranged(view2, 100, 0, 100, 100);
        }
 public Size ArrangeChildren(Rectangle bounds)
 {
     return(_manager.ArrangeChildren(bounds));
 }