Example #1
0
        public void LeftOf_Measures_Correctly()
        {
            var rect1 = new Rectangle {
                Height = 20, Width = 20
            };
            var rect2 = new Rectangle {
                Height = 20, Width = 20
            };

            var target = new RelativePanel
            {
                VerticalAlignment   = Layout.VerticalAlignment.Center,
                HorizontalAlignment = Layout.HorizontalAlignment.Center,
                Children            =
                {
                    rect1, rect2
                }
            };

            RelativePanel.SetLeftOf(rect2, rect1);
            target.Measure(new Size(400, 400));
            target.Arrange(new Rect(target.DesiredSize));

            Assert.Equal(new Size(20, 20), target.Bounds.Size);
            Assert.Equal(new Rect(0, 0, 20, 20), target.Children[0].Bounds);
            Assert.Equal(new Rect(-20, 0, 20, 20), target.Children[1].Bounds);
        }
Example #2
0
        public void Lays_Out_1_Child_Next_the_other()
        {
            var rect1 = new Rectangle {
                Height = 20, Width = 20
            };
            var rect2 = new Rectangle {
                Height = 20, Width = 20
            };

            var target = new RelativePanel
            {
                VerticalAlignment   = Layout.VerticalAlignment.Top,
                HorizontalAlignment = Layout.HorizontalAlignment.Left,
                Children            =
                {
                    rect1, rect2
                }
            };

            RelativePanel.SetAlignLeftWithPanel(rect1, true);
            RelativePanel.SetRightOf(rect2, rect1);
            target.Measure(new Size(400, 400));
            target.Arrange(new Rect(target.DesiredSize));

            Assert.Equal(new Size(40, 20), target.Bounds.Size);
            Assert.Equal(new Rect(0, 0, 20, 20), target.Children[0].Bounds);
            Assert.Equal(new Rect(20, 0, 20, 20), target.Children[1].Bounds);
        }
Example #3
0
        public void StretchedPanel_Measures_Correctly(double availableWidth, double availableHeight, double desiredWidth, double desiredHeight)
        {
            using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
            var rect1 = new Rectangle {
                Height = 20, Width = 20
            };
            var rect2 = new Rectangle {
                Height = 20, Width = 20
            };

            var target = new RelativePanel
            {
                VerticalAlignment   = Layout.VerticalAlignment.Stretch,
                HorizontalAlignment = Layout.HorizontalAlignment.Stretch,
                Children            =
                {
                    rect1, rect2
                }
            };

            RelativePanel.SetBelow(rect2, rect1);
            target.Measure(new Size(availableWidth, availableHeight));
            target.Arrange(new Rect(target.DesiredSize));

            Assert.Equal(desiredWidth, target.DesiredSize.Width);
            Assert.Equal(desiredHeight, target.DesiredSize.Height);
        }
Example #4
0
        public void RelativePanel_Can_Center()
        {
            using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
            var rect1 = new Rectangle {
                Height = 20, Width = 20
            };
            var rect2 = new Rectangle {
                Height = 20, Width = 20
            };

            var target = new RelativePanel
            {
                VerticalAlignment   = Layout.VerticalAlignment.Center,
                HorizontalAlignment = Layout.HorizontalAlignment.Center,
                Children            =
                {
                    rect1, rect2
                }
            };

            RelativePanel.SetAlignLeftWithPanel(rect1, true);
            RelativePanel.SetBelow(rect2, rect1);
            target.Measure(new Size(400, 400));
            target.Arrange(new Rect(target.DesiredSize));

            Assert.Equal(new Size(20, 40), target.Bounds.Size);
            Assert.Equal(new Rect(0, 0, 20, 20), target.Children[0].Bounds);
            Assert.Equal(new Rect(0, 20, 20, 20), target.Children[1].Bounds);
        }
Example #5
0
        public void When_Empty_And_MeasuredEmpty()
        {
            var SUT = new RelativePanel()
            {
                Name = "test"
            };

            SUT.Measure(default(Size));
            SUT.Arrange(Rect.Empty);

            Assert.AreEqual(default(Size), SUT.DesiredSize);
            Assert.IsTrue(SUT.GetChildren().None());
        }