예제 #1
0
        public void TestUnevenLimitSize()
        {
            // when uneven sizes are used and limiting by size, they should all be treated as equal size cells based on the
            // max minwidth / minheight among them.
            // Note that when limiting by count, the behavior is different - rows and columns are individually
            // expanded based on the max size of their elements
            var grid = new GridContainer {
                MaxGridWidth = 125
            };
            var child1 = new Control {
                MinSize = (12, 24)
            };
            var child2 = new Control {
                MinSize = (30, 50)
            };
            var child3 = new Control {
                MinSize = (40, 20)
            };
            var child4 = new Control {
                MinSize = (20, 12)
            };
            var child5 = new Control {
                MinSize = (50, 10)
            };

            grid.AddChild(child1);
            grid.AddChild(child2);
            grid.AddChild(child3);
            grid.AddChild(child4);
            grid.AddChild(child5);

            grid.Arrange(new UIBox2(0, 0, 250, 250));

            Assert.That(grid.DesiredSize, Is.EqualTo(new Vector2(104, 158)));

            Assert.That(child1.Position, Is.EqualTo(Vector2.Zero));
            Assert.That(child2.Position, Is.EqualTo(new Vector2(54, 0)));
            Assert.That(child3.Position, Is.EqualTo(new Vector2(0, 54)));
            Assert.That(child4.Position, Is.EqualTo(new Vector2(54, 54)));
            Assert.That(child5.Position, Is.EqualTo(new Vector2(0, 108)));
        }
예제 #2
0
        public void TestUnevenLimitSizeRows()
        {
            var grid = new GridContainer {
                MaxGridHeight = 125
            };
            var child1 = new Control {
                MinSize = (12, 2)
            };
            var child2 = new Control {
                MinSize = (5, 23)
            };
            var child3 = new Control {
                MinSize = (42, 4)
            };
            var child4 = new Control {
                MinSize = (2, 50)
            };
            var child5 = new Control {
                MinSize = (50, 34)
            };

            grid.AddChild(child1);
            grid.AddChild(child2);
            grid.AddChild(child3);
            grid.AddChild(child4);
            grid.AddChild(child5);

            grid.Arrange(new UIBox2(0, 0, 250, 250));

            Assert.That(grid.DesiredSize, Is.EqualTo(new Vector2(158, 104)));

            Assert.That(child1.Position, Is.EqualTo(Vector2.Zero));
            Assert.That(child2.Position, Is.EqualTo(new Vector2(0, 54)));
            Assert.That(child3.Position, Is.EqualTo(new Vector2(54, 0)));
            Assert.That(child4.Position, Is.EqualTo(new Vector2(54, 54)));
            Assert.That(child5.Position, Is.EqualTo(new Vector2(108, 0)));
        }