Exemple #1
0
        public void ChildMeasureTest3()
        {
            Border      b = new Border();
            LayoutPoker c = new LayoutPoker();
            Rectangle   r = new Rectangle();

            b.Child = c;
            c.Children.Add(r);
            c.Background = new SolidColorBrush(Colors.Red);

            r.Width  = 50;
            r.Height = 50;

            bool called = false;

            c.Measured += (Size real) => {
                c.MeasureResult = real;
                called          = true;
            };

            b.Measure(new Size(100, 100));
            Assert.IsTrue(called, "measure called");

            Assert.AreEqual(new Size(0, 0), c.DesiredSize);
            Assert.AreEqual(new Size(0, 0), r.DesiredSize);
            Assert.AreEqual(new Size(0, 0), b.DesiredSize);
        }
Exemple #2
0
        public void MinWidthOnParentTest()
        {
            StackPanel sp = new StackPanel {
                MinWidth = 200
            };
            LayoutPoker c = new LayoutPoker {
                Height = 25
            };

            sp.Children.Add(c);

            sp.Measure(new Size(100, 100));

            Assert.AreEqual(new Size(200, 25), c.MeasureArg, "c.Measure");

            Assert.AreEqual(new Size(0, 25), c.DesiredSize);

            sp.Arrange(new Rect(0, 0, 100, 100));

            Assert.AreEqual(new Size(200, 25), c.ArrangeArg, "c.Arrange");

            // now check desired/render sizes

            // the child is oblivious to the parent's maxheight
            Assert.AreEqual(new Size(0, 0), c.RenderSize, "c.RenderedSize");
            Assert.AreEqual(new Size(0, 25), c.DesiredSize, "c.DesiredSize");
            Assert.IsNull(LayoutInformation.GetLayoutClip(c), "c.LayoutClip == null");

            // the parent's maxheight clips
            Assert.AreEqual(new Size(200, 100), sp.RenderSize, "sp.RenderSize");
            Assert.AreEqual(new Size(100, 25), sp.DesiredSize, "sp.DesiredSize");
            Assert.IsNotNull(LayoutInformation.GetLayoutClip(sp), "sp.LayoutClip != null");
        }
Exemple #3
0
		public void ConsumeMoreSpaceInArrange ()
		{
			// Pass in 100, 100 as both the Arrange and Measure args,
			// but return 200, 200 from ArrangeOverride to see what
			// kind of clip gets applied.
			Size measureSize = new Size (100, 100);
			Rect arrangeRect = new Rect (0, 0, 100, 100);

			LayoutPoker poker = new LayoutPoker {
				MeasureOverrideResult = measureSize,
				ArrangeOverrideResult = new Size (200, 200)
			};
			poker.Measure (measureSize);
			poker.Arrange (arrangeRect);

			Assert.AreEqual (measureSize, poker.MeasureOverrideArg, "#1");
			Assert.AreEqual (measureSize, poker.ArrangeOverrideArg, "#2");
			Assert.AreEqual (new Size (200, 200), new Size (poker.ActualWidth, poker.ActualHeight), "#3");
			Assert.AreEqual (new Size (200, 200), poker.RenderSize, "#4");
			Assert.AreEqual (new Size (100, 100), poker.DesiredSize, "#5");

			RectangleGeometry geom = (RectangleGeometry) LayoutInformation.GetLayoutClip (poker);
			Assert.AreEqual (new Rect (0, 0, 100, 100), geom.Rect, "#6");
			Assert.AreEqual (new Rect (0, 0, 100, 100), LayoutInformation.GetLayoutSlot (poker), "#7");
		}
Exemple #4
0
        public void ChildlessArrangeTest5()
        {
            Border      b = new Border();
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);

            b.Padding = new Thickness(1, 1, 0, 0);
            b.Child   = c;
            b.Measure(s);

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c DesiredSize");
            Assert.AreEqual(new Size(9, 9), c.MeasureArg, "c measure args");
            Assert.AreEqual(new Size(1, 1), b.DesiredSize, "b DesiredSize");
            Assert.AreEqual(0, b.ActualWidth);
            Assert.AreEqual(0, b.ActualHeight);
            Assert.AreEqual(0, c.ActualWidth);
            Assert.AreEqual(0, c.ActualHeight);

            c.ArrangeResult = new Size(9, 9);
            b.Arrange(new Rect(0, 0, 10, 10));

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c DesiredSize");
            Assert.AreEqual(new Size(9, 9), c.RenderSize, "c render size");
            Assert.AreEqual(new Size(9, 9), c.ArrangeArg, "c measure args");
            Assert.AreEqual(new Size(1, 1), b.DesiredSize, "b DesiredSize");
            Assert.AreEqual(new Size(10, 10), b.RenderSize, "b render size");
            Assert.AreEqual(10, b.ActualWidth);
            Assert.AreEqual(10, b.ActualHeight);
            Assert.AreEqual(9, c.ActualWidth);
            Assert.AreEqual(9, c.ActualHeight);
        }
Exemple #5
0
        public void InvalidateMeasureTest3()
        {
            Border      b = new Border();
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);

            b.Child = c;

            c.MeasureResult = s;

            b.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            Assert.AreEqual(new Size(10, 10), b.DesiredSize, "b desiredsize");
            Assert.AreEqual(new Size(10, 10), c.DesiredSize, "c desiredsize");

            c.MeasureResult = new Size(20, 20);
            c.MeasureArg    = new Size(99, 99);

            b.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            Assert.AreEqual(new Size(10, 10), b.DesiredSize, "b desiredsize1");
            Assert.AreEqual(new Size(10, 10), c.DesiredSize, "c desiredsize1");
            Assert.AreEqual(new Size(99, 99), c.MeasureArg, "c measurearg");

            b.InvalidateMeasure();
            b.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            Assert.AreEqual(new Size(10, 10), b.DesiredSize, "b desiredsize1");
            Assert.AreEqual(new Size(10, 10), c.DesiredSize, "c desiredsize1");
            Assert.AreEqual(new Size(99, 99), c.MeasureArg, "c measurearg");

            c.InvalidateMeasure();
            b.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
            Assert.AreEqual(new Size(20, 20), b.DesiredSize, "b desiredsize1");
            Assert.AreEqual(new Size(20, 20), c.DesiredSize, "c desiredsize1");
            Assert.AreEqual(new Size(Double.PositiveInfinity, Double.PositiveInfinity), c.MeasureArg, "c measurearg");
        }
Exemple #6
0
        public void AlignmentTest()
        {
            Border      b     = new Border();
            Border      b2    = new Border();
            LayoutPoker poker = new LayoutPoker();

            b.Child  = b2;
            b2.Child = poker;
            b.Width  = 50;

            b2.HorizontalAlignment = HorizontalAlignment.Right;
            b2.VerticalAlignment   = VerticalAlignment.Bottom;

            poker.MeasureResult = new Size(20, 20);
            b.Measure(new Size(100, 100));

            Assert.AreEqual(new Size(50, 100), poker.MeasureArg, "poker m arg");
            Assert.AreEqual(new Size(20, 20), poker.DesiredSize, "poker m result");
            Assert.AreEqual(new Size(0, 0), poker.BaseMeasureResult, "poker base result");

            Assert.AreEqual(new Size(50, 20), b.DesiredSize, "b desiredsize");
            Assert.AreEqual(new Size(20, 20), b2.DesiredSize, "b2 desiredsize");

            poker.ArrangeResult = new Size(20, 20);
            b.Arrange(new Rect(0, 0, b.DesiredSize.Width, b.DesiredSize.Height));

            Assert.AreEqual(new Size(20, 20), poker.ArrangeArg, "poker aa");

            Assert.AreEqual(new Rect(0, 0, 20, 20).ToString(), LayoutInformation.GetLayoutSlot(poker).ToString(), "poker slot");
            Assert.AreEqual(new Rect(0, 0, 50, 20).ToString(), LayoutInformation.GetLayoutSlot(b2).ToString(), "b2 slot");
            Assert.AreEqual(new Rect(0, 0, 50, 20).ToString(), LayoutInformation.GetLayoutSlot(b).ToString(), "b slot");
        }
Exemple #7
0
        public void ChildlessMeasureTest()
        {
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);

            c.Measure(s);

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "DesiredSize");
            Assert.AreEqual(new Size(10, 10), c.MeasureArg, "measure args");
        }
Exemple #8
0
        public void InvalidateArrangeTest()
        {
            Border      b = new Border();
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);

            b.Padding = new Thickness(1, 1, 0, 0);
            b.Child   = c;
            b.Measure(s);

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c DesiredSize");
            Assert.AreEqual(new Size(9, 9), c.MeasureArg, "c measure args");
            Assert.AreEqual(new Size(1, 1), b.DesiredSize, "b DesiredSize");
            Assert.AreEqual(0, b.ActualWidth);
            Assert.AreEqual(0, b.ActualHeight);
            Assert.AreEqual(0, c.ActualWidth);
            Assert.AreEqual(0, c.ActualHeight);

            c.ArrangeResult = new Size(20, 20);
            b.Arrange(new Rect(0, 0, 10, 10));

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c DesiredSize");
            Assert.AreEqual(new Size(20, 20), c.RenderSize, "c render size");
            Assert.AreEqual(new Size(9, 9), c.ArrangeArg, "c measure args");
            Assert.AreEqual(new Size(1, 1), b.DesiredSize, "b DesiredSize");
            Assert.AreEqual(new Size(10, 10), b.RenderSize, "b render size");
            Assert.AreEqual(new Size(10, 10), new Size(b.ActualWidth, b.ActualHeight), "b actual");
            Assert.AreEqual(new Size(20, 20), new Size(c.ActualWidth, c.ActualHeight), "c actual");

            c.ArrangeResult = new Size(9, 9);
            b.Arrange(new Rect(0, 0, 10, 10));

            // Does not invalidate child
            b.InvalidateArrange();

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c DesiredSize");
            Assert.AreEqual(new Size(20, 20), c.RenderSize, "c render size");
            Assert.AreEqual(new Size(9, 9), c.ArrangeArg, "c measure args");
            Assert.AreEqual(new Size(1, 1), b.DesiredSize, "b DesiredSize");
            Assert.AreEqual(new Size(10, 10), b.RenderSize, "b render size");
            Assert.AreEqual(new Size(10, 10), new Size(b.ActualWidth, b.ActualHeight), "b actual1");
            Assert.AreEqual(new Size(20, 20), new Size(c.ActualWidth, c.ActualHeight), "c actual1");

            c.InvalidateArrange();
            b.Arrange(new Rect(0, 0, 10, 10));

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c DesiredSize");
            Assert.AreEqual(new Size(9, 9), c.RenderSize, "c render size");
            Assert.AreEqual(new Size(9, 9), c.ArrangeArg, "c measure args");
            Assert.AreEqual(new Size(1, 1), b.DesiredSize, "b DesiredSize");
            Assert.AreEqual(new Size(10, 10), b.RenderSize, "b render size");
            Assert.AreEqual(new Size(10, 10), new Size(b.ActualWidth, b.ActualHeight), "b actual2");
            Assert.AreEqual(new Size(9, 9), new Size(c.ActualWidth, c.ActualHeight), "c actual2");
        }
Exemple #9
0
        public void ComplexLayout2()
        {
            Grid g = new Grid();

            RowDefinition    rdef;
            ColumnDefinition cdef;

            rdef        = new RowDefinition();
            rdef.Height = new GridLength(200);
            g.RowDefinitions.Add(rdef);

            cdef       = new ColumnDefinition();
            cdef.Width = new GridLength(200);
            g.ColumnDefinitions.Add(cdef);

            g.Margin = new Thickness(5);

            LayoutPoker c = new LayoutPoker();

            Grid.SetRow(c, 0);
            Grid.SetColumn(c, 0);

            g.Children.Add(c);

            c.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));

            // first test with the child sized larger than the row/column definitions
            c.Width  = 400;
            c.Height = 400;

            g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));

            Assert.AreEqual(400, c.Width);
            Assert.AreEqual(400, c.Height);

            Assert.AreEqual(new Size(200, 200), c.DesiredSize, "c DesiredSize0");
            Assert.AreEqual(new Size(400, 400), c.MeasureArg, "c MeasureArg0");
            Assert.AreEqual(new Size(210, 210), g.DesiredSize, "grid DesiredSize0");

            g.Measure(new Size(100, 100));

            Assert.AreEqual(new Size(100, 100), g.DesiredSize, "grid DesiredSize1");
            Assert.AreEqual(new Size(400, 400), c.MeasureArg, "c MeasureArg");
            Assert.AreEqual(new Size(200, 200), c.DesiredSize, "c DesiredSize1");

            // now test with the child sized smaller than the row/column definitions
            c.Width  = 100;
            c.Height = 100;

            g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));

            Assert.AreEqual(new Size(100, 100), c.MeasureArg, "c MeasureArg2");
            Assert.AreEqual(new Size(210, 210), g.DesiredSize, "grid DesiredSize2");
        }
Exemple #10
0
        public void Setup()
        {
            TestPanel.Width  = 100;
            TestPanel.Height = 100;
            Child            = new LayoutPoker();
            Viewbox          = new Viewbox();

            // The default template is applied when the item is added to the tree.
            TestPanel.Children.Add(Viewbox);
            TestPanel.Children.Clear();

            Viewbox.Child = Child;
        }
Exemple #11
0
		public void Setup()
		{
			TestPanel.Width = 100;
			TestPanel.Height = 100;
			Child = new LayoutPoker ();
			Viewbox = new Viewbox();

			// The default template is applied when the item is added to the tree.
			TestPanel.Children.Add(Viewbox);
			TestPanel.Children.Clear();

			Viewbox.Child = Child;
		}
Exemple #12
0
        public void ChildMeasureTest1()
        {
            LayoutPoker c = new LayoutPoker();
            Rectangle   r = new Rectangle();

            c.Children.Add(r);

            r.Width  = 50;
            r.Height = 50;

            c.Measure(new Size(10, 10));

            Assert.AreEqual(new Size(0, 0), c.DesiredSize);
        }
Exemple #13
0
        public void ChildlessMeasureTest2()
        {
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);
            Border      b = new Border();

            b.Child = c;

            c.MeasureResult = new Size(5, 5);
            c.Margin        = new Thickness(1);
            b.Measure(s);

            Assert.AreEqual(new Size(7, 7), c.DesiredSize, "DesiredSize");
        }
Exemple #14
0
        public void ChildMeasureTest2()
        {
            LayoutPoker c = new LayoutPoker();
            Rectangle   r = new Rectangle();

            c.Children.Add(r);

            r.Width  = 50;
            r.Height = 50;

            c.Measured += (Size real) => { c.MeasureResult = real; };
            c.Measure(new Size(100, 100));

            Assert.AreEqual(new Size(0, 0), c.BaseMeasureResult);
        }
Exemple #15
0
		public void MaxOnElement ()
		{
			LayoutPoker c = new LayoutPoker { MaxWidth = 50, MaxHeight = 50 };

			c.Measure (new Size (1000, 1000));

			Assert.AreEqual (new Size (50, 50), c.MeasureArg, "c.MeasureArg");

			c.Arrange (new Rect (0, 0, 1000, 1000));

			Assert.AreEqual (new Size (50, 50), c.ArrangeArg, "c.ArrangeArg");

			Assert.AreEqual (new Size (0,0), c.RenderSize, "c.RenderSize");
			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c.DesiredSize");
			Assert.IsNull (LayoutInformation.GetLayoutClip (c), "c.LayoutClip == null");
		}
Exemple #16
0
        public void ChildlessArrangeTest1()
        {
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);

            c.Measure(s);

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "DesiredSize");
            Assert.AreEqual(new Size(10, 10), c.MeasureArg, "measure args");

            c.Arrange(new Rect(0, 0, 10, 10));

            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "DesiredSize");
            Assert.AreEqual(new Size(0, 0), c.RenderSize, "render size");
            Assert.AreEqual(new Size(10, 10), c.ArrangeArg, "measure args");
        }
Exemple #17
0
		public void VisualTree_RenderTransformSet()
		{
			var box = new Viewbox();
			var child = new LayoutPoker();
			box.Child = child;

			CreateAsyncTest(box,
				() => {
					/* Ensure that the box has been measured at least once */
				}, () => {
					var border = box.FindFirstChild<Border>();
					Assert.IsNotNull(border, "#1");
					Assert.AreNotEqual(DependencyProperty.UnsetValue, border.ReadLocalValue(Border.RenderTransformProperty), "#2");
					Assert.IsInstanceOfType<ScaleTransform> (border.RenderTransform, "#3");
				}
			);
		}
Exemple #18
0
        public void ChildlessMeasureTest4()
        {
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);
            Border      b = new Border();

            b.Child = c;

            c.Width         = 9;
            c.Height        = 9;
            c.MeasureResult = new Size(5, 5);
            c.Margin        = new Thickness(1);
            c.Measure(s);

            Assert.AreEqual(new Size(c.Width, c.Height), c.MeasureArg, "MeasureArg");
            Assert.AreEqual(new Size(10, 10), c.DesiredSize, "DesiredSize");
        }
Exemple #19
0
        public void VisualTree_RenderTransformSet()
        {
            var box   = new Viewbox();
            var child = new LayoutPoker();

            box.Child = child;

            CreateAsyncTest(box,
                            () => {
                /* Ensure that the box has been measured at least once */
            }, () => {
                var border = box.FindFirstChild <Border>();
                Assert.IsNotNull(border, "#1");
                Assert.AreNotEqual(DependencyProperty.UnsetValue, border.ReadLocalValue(Border.RenderTransformProperty), "#2");
                Assert.IsInstanceOfType <ScaleTransform> (border.RenderTransform, "#3");
            }
                            );
        }
Exemple #20
0
        public void MaxOnElement()
        {
            LayoutPoker c = new LayoutPoker {
                MaxWidth = 50, MaxHeight = 50
            };

            c.Measure(new Size(1000, 1000));

            Assert.AreEqual(new Size(50, 50), c.MeasureArg, "c.MeasureArg");

            c.Arrange(new Rect(0, 0, 1000, 1000));

            Assert.AreEqual(new Size(50, 50), c.ArrangeArg, "c.ArrangeArg");

            Assert.AreEqual(new Size(0, 0), c.RenderSize, "c.RenderSize");
            Assert.AreEqual(new Size(0, 0), c.DesiredSize, "c.DesiredSize");
            Assert.IsNull(LayoutInformation.GetLayoutClip(c), "c.LayoutClip == null");
        }
Exemple #21
0
        public void BorderCallsLayoutTest()
        {
            var         parent = new Border();
            LayoutPoker c      = new LayoutPoker();

            parent.Child = c;

            c.Width  = 50;
            c.Height = 50;

            int measure_called = 0;
            int arrange_called = 0;

            c.Measured += (Size real) => {
                c.MeasureResult = real;
                measure_called++;
            };
            c.Arranged += (Size real) => {
                c.ArrangeResult = real;
                arrange_called++;
            };

            parent.Measure(new Size(100, 100));
            Assert.AreEqual(0, arrange_called, "arrange called 0");
            Assert.AreEqual(1, measure_called, "measure called 0");

            Assert.AreEqual(new Size(50, 50), c.DesiredSize, "c desired");
            Assert.AreEqual(new Size(50, 50), parent.DesiredSize, "parent desired");

            parent.Arrange(new Rect(0, 0, 100, 100));

            Assert.AreEqual(1, arrange_called, "arrange called 1");
            Assert.AreEqual(1, measure_called, "measure called 1");

            c.InvalidateMeasure();
            c.InvalidateArrange();
            parent.InvalidateArrange();
            parent.InvalidateMeasure();
            parent.Arrange(new Rect(0, 0, 100, 100));

            Assert.AreEqual(2, arrange_called, "arrange called 2");
            Assert.AreEqual(2, measure_called, "measure called 2");
        }
Exemple #22
0
        public void VisualTree_WithChild()
        {
            var box   = new Viewbox();
            var child = new LayoutPoker();

            box.Child = child;

            CreateAsyncTest(box,
                            () => {
                /* Ensure that the box has been measured at least once */
            }, () => {
                Assert.VisualChildren(box, "#1",
                                      new VisualNode <Border>("#a",
                                                              new VisualNode <LayoutPoker>("#b")
                                                              )
                                      );
            }
                            );
        }
Exemple #23
0
        public void InvalidateMeasureTest4()
        {
            Border      b = new Border();
            LayoutPoker c = new LayoutPoker();
            Size        s = new Size(10, 10);

            b.Child = c;

            c.MeasureResult = s;

            b.Measure(new Size(2, 2));
            Assert.AreEqual(new Size(2, 2), b.DesiredSize, "b desiredsize");
            Assert.AreEqual(new Size(2, 2), c.DesiredSize, "c desiredsize");

            c.MeasureResult = new Size(20, 20);
            c.MeasureArg    = new Size(99, 99);

            b.Measure(new Size(3, 3));
            Assert.AreEqual(new Size(3, 3), b.DesiredSize, "b desiredsize1");
            Assert.AreEqual(new Size(3, 3), c.DesiredSize, "c desiredsize1");
            Assert.AreEqual(new Size(3, 3), c.MeasureArg, "c measurearg1");

            c.MeasureArg = new Size(99, 99);
            b.Measure(new Size(3, 3));
            Assert.AreEqual(new Size(3, 3), b.DesiredSize, "b desiredsize2");
            Assert.AreEqual(new Size(3, 3), c.DesiredSize, "c desiredsize2");
            Assert.AreEqual(new Size(99, 99), c.MeasureArg, "c measurearg2");

            b.InvalidateMeasure();
            c.MeasureArg = new Size(99, 99);
            b.Measure(new Size(3, 3));
            Assert.AreEqual(new Size(3, 3), b.DesiredSize, "b desiredsize3");
            Assert.AreEqual(new Size(3, 3), c.DesiredSize, "c desiredsize3");
            Assert.AreEqual(new Size(99, 99), c.MeasureArg, "c measurearg3");

            c.InvalidateMeasure();
            b.Measure(new Size(3, 3));
            Assert.AreEqual(new Size(3, 3), b.DesiredSize, "b desiredsize4");
            Assert.AreEqual(new Size(3, 3), c.DesiredSize, "c desiredsize4");
            Assert.AreEqual(new Size(3, 3), c.MeasureArg, "c measurearg4");
        }
Exemple #24
0
        public void ComputeWidthCallsLayoutParent()
        {
            Border      b = new Border();
            LayoutPoker c = new LayoutPoker();

            b.Child = c;

            int called = 0;

            c.Measured += (Size real) => {
                c.MeasureResult = real;
                called++;
            };

            b.Width  = 50;
            b.Height = 50;

            Assert.AreEqual(0, called);

            b.Measure(new Size(100, 100));

            Assert.AreEqual(1, called);
        }
Exemple #25
0
		public void InvalidateMeasureTest4 ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			b.Child = c;

			c.MeasureResult = s;

			b.Measure (new Size (2, 2));
			Assert.AreEqual (new Size (2,2), b.DesiredSize, "b desiredsize");
			Assert.AreEqual (new Size (2,2), c.DesiredSize, "c desiredsize");

			c.MeasureResult = new Size (20,20);
			c.MeasureArg = new Size (99,99);

			b.Measure (new Size (3, 3));
			Assert.AreEqual (new Size (3,3), b.DesiredSize, "b desiredsize1");
			Assert.AreEqual (new Size (3,3), c.DesiredSize, "c desiredsize1");
			Assert.AreEqual (new Size (3,3), c.MeasureArg, "c measurearg1");

			c.MeasureArg = new Size (99,99);
			b.Measure (new Size (3, 3));
			Assert.AreEqual (new Size (3,3), b.DesiredSize, "b desiredsize2");
			Assert.AreEqual (new Size (3,3), c.DesiredSize, "c desiredsize2");
			Assert.AreEqual (new Size (99,99), c.MeasureArg, "c measurearg2");

			b.InvalidateMeasure ();
			c.MeasureArg = new Size (99,99);
			b.Measure (new Size (3, 3));
			Assert.AreEqual (new Size (3,3), b.DesiredSize, "b desiredsize3");
			Assert.AreEqual (new Size (3,3), c.DesiredSize, "c desiredsize3");
			Assert.AreEqual (new Size (99,99), c.MeasureArg, "c measurearg3");

			c.InvalidateMeasure ();
			b.Measure (new Size (3,3));
			Assert.AreEqual (new Size (3,3), b.DesiredSize, "b desiredsize4");
			Assert.AreEqual (new Size (3,3), c.DesiredSize, "c desiredsize4");
			Assert.AreEqual (new Size (3,3), c.MeasureArg, "c measurearg4");
		}
Exemple #26
0
		public void InvalidateMeasureTest2 ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			b.Child = c;

			c.MeasureResult = s;

			c.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
			Assert.AreEqual (new Size (10,10), c.DesiredSize, "c desiredsize");

			c.MeasureResult = new Size (20,20);
			c.MeasureArg = new Size (99,99);

			c.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
			Assert.AreEqual (new Size (10,10), c.DesiredSize, "c desiredsize1");
			Assert.AreEqual (new Size (99,99), c.MeasureArg, "c measurearg");

			c.InvalidateMeasure ();
			c.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
			Assert.AreEqual (new Size (20,20), c.DesiredSize, "c desiredsize1");
			Assert.AreEqual (new Size (Double.PositiveInfinity,Double.PositiveInfinity), c.MeasureArg, "c measurearg");
		}
Exemple #27
0
		public void ChildlessArrangeTest5 ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			
			b.Padding = new Thickness (1,1,0,0);
			b.Child = c;
			b.Measure (s);

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c DesiredSize");
			Assert.AreEqual (new Size (9,9), c.MeasureArg, "c measure args");
			Assert.AreEqual (new Size (1,1), b.DesiredSize, "b DesiredSize");
			Assert.AreEqual (0,b.ActualWidth);
			Assert.AreEqual (0,b.ActualHeight);
			Assert.AreEqual (0,c.ActualWidth);
			Assert.AreEqual (0,c.ActualHeight);
			
			c.ArrangeResult = new Size (9,9);
			b.Arrange (new Rect (0,0,10,10));

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c DesiredSize");
			Assert.AreEqual (new Size (9,9), c.RenderSize, "c render size");
			Assert.AreEqual (new Size (9,9), c.ArrangeArg, "c measure args");
			Assert.AreEqual (new Size (1,1), b.DesiredSize, "b DesiredSize");
			Assert.AreEqual (new Size (10,10), b.RenderSize, "b render size");
			Assert.AreEqual (10,b.ActualWidth);
			Assert.AreEqual (10,b.ActualHeight);
			Assert.AreEqual (9,c.ActualWidth);
			Assert.AreEqual (9,c.ActualHeight);
		}
Exemple #28
0
		public void ChildlessArrangeTest1 ()
		{
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			
			c.Measure (s);

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "DesiredSize");
			Assert.AreEqual (new Size (10,10), c.MeasureArg, "measure args");
			
			c.Arrange (new Rect (0,0,10,10));

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "DesiredSize");
			Assert.AreEqual (new Size (0,0), c.RenderSize, "render size");
			Assert.AreEqual (new Size (10,10), c.ArrangeArg, "measure args");
		}
Exemple #29
0
		public void BorderCallsLayoutTest ()
		{
			var parent = new Border ();
			LayoutPoker c = new LayoutPoker ();
			parent.Child = c;

			c.Width = 50;
			c.Height = 50;
			
			int measure_called = 0;
			int arrange_called = 0;
			c.Measured += (Size real) => { 
				c.MeasureResult = real; 
				measure_called++;
			};
			c.Arranged += (Size real) => {
				c.ArrangeResult = real;
				arrange_called++;
			};

			parent.Measure (new Size (100, 100));
			Assert.AreEqual (0, arrange_called, "arrange called 0");
			Assert.AreEqual (1, measure_called, "measure called 0");

			Assert.AreEqual (new Size (50,50), c.DesiredSize, "c desired");
			Assert.AreEqual (new Size (50,50), parent.DesiredSize, "parent desired");

			parent.Arrange (new Rect (0, 0, 100, 100));

			Assert.AreEqual (1, arrange_called, "arrange called 1");
			Assert.AreEqual (1, measure_called, "measure called 1");

			c.InvalidateMeasure ();
			c.InvalidateArrange ();
			parent.InvalidateArrange ();
			parent.InvalidateMeasure ();
			parent.Arrange (new Rect (0, 0, 100, 100));

			Assert.AreEqual (2, arrange_called, "arrange called 2");
			Assert.AreEqual (2, measure_called, "measure called 2");
		}
Exemple #30
0
		public void LargerMeasure_Unconstrained_NoStretch ()
		{
			Size measureSize = new Size (200, 200);
			Rect arrangeRect = new Rect (0, 0, 100, 100);

			LayoutPoker poker = new LayoutPoker {
				HorizontalAlignment = HorizontalAlignment.Center,
				VerticalAlignment = VerticalAlignment.Center,
				MeasureOverrideResult = measureSize,
				ArrangeOverrideResult = measureSize
			};
			poker.Measure (measureSize);
			poker.Arrange (arrangeRect);

			Assert.AreEqual (measureSize, poker.MeasureOverrideArg, "#1");
			Assert.AreEqual (measureSize, poker.ArrangeOverrideArg, "#2");
			Assert.AreEqual (measureSize, new Size (poker.ActualWidth, poker.ActualHeight), "#3");
			Assert.AreEqual (measureSize, poker.RenderSize, "#4");
			Assert.AreEqual (measureSize, poker.DesiredSize, "#5");
			
			RectangleGeometry geom = (RectangleGeometry) LayoutInformation.GetLayoutClip (poker);
			Assert.IsNotNull (geom, "#6");
			Assert.AreEqual (new Rect (50, 50, 100, 100), geom.Rect, "#7");
			Assert.AreEqual (new Rect (0, 0, 100, 100), LayoutInformation.GetLayoutSlot (poker), "#8");
		}
Exemple #31
0
		public void ArrangeNoMeasure ()
		{
			LayoutPoker poker = new LayoutPoker ();
			poker.Arrange (new Rect (0, 0, 100, 100));
			Assert.IsTrue (poker.Arranged, "#1");
			Assert.IsFalse (poker.Measured, "#2");
		}
Exemple #32
0
		public void InvalidateArrangeTest ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			
			b.Padding = new Thickness (1,1,0,0);
			b.Child = c;
			b.Measure (s);

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c DesiredSize");
			Assert.AreEqual (new Size (9,9), c.MeasureArg, "c measure args");
			Assert.AreEqual (new Size (1,1), b.DesiredSize, "b DesiredSize");
			Assert.AreEqual (0,b.ActualWidth);
			Assert.AreEqual (0,b.ActualHeight);
			Assert.AreEqual (0,c.ActualWidth);
			Assert.AreEqual (0,c.ActualHeight);
			
			c.ArrangeResult = new Size (20,20);
			b.Arrange (new Rect (0,0,10,10));

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c DesiredSize");
			Assert.AreEqual (new Size (20,20), c.RenderSize, "c render size");
			Assert.AreEqual (new Size (9,9), c.ArrangeArg, "c measure args");
			Assert.AreEqual (new Size (1,1), b.DesiredSize, "b DesiredSize");
			Assert.AreEqual (new Size (10,10), b.RenderSize, "b render size");
			Assert.AreEqual (new Size (10,10), new Size (b.ActualWidth, b.ActualHeight),"b actual");
			Assert.AreEqual (new Size (20,20), new Size (c.ActualWidth, c.ActualHeight), "c actual");

			c.ArrangeResult = new Size (9,9);
			b.Arrange (new Rect (0,0,10,10));

			// Does not invalidate child
			b.InvalidateArrange ();

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c DesiredSize");
			Assert.AreEqual (new Size (20,20), c.RenderSize, "c render size");
			Assert.AreEqual (new Size (9,9), c.ArrangeArg, "c measure args");
			Assert.AreEqual (new Size (1,1), b.DesiredSize, "b DesiredSize");
			Assert.AreEqual (new Size (10,10), b.RenderSize, "b render size");
			Assert.AreEqual (new Size (10,10), new Size (b.ActualWidth, b.ActualHeight),"b actual1");
			Assert.AreEqual (new Size (20,20), new Size (c.ActualWidth, c.ActualHeight), "c actual1");

			c.InvalidateArrange ();
			b.Arrange (new Rect (0,0,10,10));

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "c DesiredSize");
			Assert.AreEqual (new Size (9,9), c.RenderSize, "c render size");
			Assert.AreEqual (new Size (9,9), c.ArrangeArg, "c measure args");
			Assert.AreEqual (new Size (1,1), b.DesiredSize, "b DesiredSize");
			Assert.AreEqual (new Size (10,10), b.RenderSize, "b render size");
			Assert.AreEqual (new Size (10,10), new Size (b.ActualWidth, b.ActualHeight),"b actual2");
			Assert.AreEqual (new Size (9,9), new Size (c.ActualWidth, c.ActualHeight), "c actual2");
		}
Exemple #33
0
		public void ChildlessMeasureTest3 ()
		{
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			Border b = new Border ();
			
			b.Child = c;
			
			c.MaxWidth = 3;
			c.MeasureResult = new Size (5, 5);
			c.Margin = new Thickness (1);			
			b.Measure (s);

			Assert.AreEqual (new Size (5, 7), c.DesiredSize, "DesiredSize");
			Assert.AreEqual (new Size (3, 8), c.MeasureArg, "MeasureArgs");
		}
Exemple #34
0
		public void ChildlessMeasureTest ()
		{
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);

			c.Measure (s);

			Assert.AreEqual (new Size (0,0), c.DesiredSize, "DesiredSize");
			Assert.AreEqual (new Size (10,10), c.MeasureArg, "measure args");
		}
Exemple #35
0
		public void SameMeasureAndArrange_Unconstrained ()
		{
			Size measureSize = new Size (100, 100);
			Rect arrangeRect = new Rect (0, 0, 100, 100);

			LayoutPoker poker = new LayoutPoker {
				MeasureOverrideResult = measureSize,
				ArrangeOverrideResult = measureSize
			};
			poker.Measure (measureSize);
			poker.Arrange (arrangeRect);

			Assert.AreEqual (measureSize, poker.MeasureOverrideArg, "#1");
			Assert.AreEqual (measureSize, poker.ArrangeOverrideArg, "#2");
			Assert.AreEqual (measureSize, new Size (poker.ActualWidth, poker.ActualHeight), "#3");
			Assert.AreEqual (measureSize, poker.RenderSize, "#4");
			Assert.AreEqual (measureSize, poker.DesiredSize, "#5");
			
			RectangleGeometry geom = (RectangleGeometry) LayoutInformation.GetLayoutClip (poker);
			Assert.IsNull (geom, "#6");
			Assert.AreEqual (new Rect (0, 0, 100, 100), LayoutInformation.GetLayoutSlot (poker), "#7");
		}
Exemple #36
0
		public void InfMeasure_Unconstrained_NegMargin ()
		{
			Size measureSize = new Size (200, 200);
			Rect arrangeRect = new Rect (0, 0, 100, 100);

			LayoutPoker poker = new LayoutPoker {
				MeasureOverrideResult = measureSize,
				ArrangeOverrideResult = measureSize
			};
			poker.Margin = new Thickness {
					Top = -10,
						Left = 10,
						Bottom = 3,
						Right = 3
			};
			poker.Measure (infinity);
			poker.Arrange (arrangeRect);

			Assert.AreEqual (infinity, poker.MeasureOverrideArg, "#1");
			Assert.AreEqual (measureSize, poker.ArrangeOverrideArg, "#2");
			Assert.AreEqual (measureSize, new Size (poker.ActualWidth, poker.ActualHeight), "#3");
			Assert.AreEqual (measureSize, poker.RenderSize, "#4");
			Assert.AreEqual (new Size (213,193), poker.DesiredSize, "#5");
			RectangleGeometry geom = LayoutInformation.GetLayoutClip (poker) as RectangleGeometry;
			Assert.IsNotNull (geom, "#6");
			Assert.AreEqual (new Rect (0, 0, 87, 107), geom.Rect, "#7");
			Assert.AreEqual (new Rect (0, 0, 100, 100), LayoutInformation.GetLayoutSlot (poker), "#8");
		}
Exemple #37
0
		public void InvalidateMeasureTest5 ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			b.Child = c;

			c.MeasureResult = s;

			b.Measure (new Size (100,100));
			Assert.AreEqual (new Size (10,10), b.DesiredSize, "b desiredsize");
			Assert.AreEqual (new Size (10,10), c.DesiredSize, "c desiredsize");

			c.MeasureResult = new Size (20,20);
			c.MeasureArg = new Size (99,99);

			b.Measure (new Size (110,110));
			Assert.AreEqual (new Size (20,20), b.DesiredSize, "b desiredsize1");
			Assert.AreEqual (new Size (20,20), c.DesiredSize, "c desiredsize1");
			Assert.AreEqual (new Size (110,110), c.MeasureArg, "c measurearg");
		}
Exemple #38
0
		public void LargerMeasure_Constrained_Smaller ()
		{
			Size measureSize = new Size (200, 200);
			Rect arrangeRect = new Rect (0, 0, 100, 100);

			LayoutPoker poker = new LayoutPoker {
				Width = 50,
				Height = 50,
				MeasureOverrideResult = measureSize,
				ArrangeOverrideResult = measureSize
			};
			poker.Measure (measureSize);
			poker.Arrange (arrangeRect);

			Assert.AreEqual (new Size (50, 50), poker.MeasureOverrideArg, "#1");
			Assert.AreEqual (measureSize, poker.ArrangeOverrideArg, "#2");
			Assert.AreEqual (measureSize, new Size (poker.ActualWidth, poker.ActualHeight), "#3");
			Assert.AreEqual (measureSize, poker.RenderSize, "#4");
			Assert.AreEqual (new Size (50, 50), poker.DesiredSize, "#5");
			
			RectangleGeometry geom = (RectangleGeometry) LayoutInformation.GetLayoutClip (poker);
			Assert.IsNotNull (geom, "#6");
			Assert.AreEqual (new Rect (0, 0, 50, 50), geom.Rect, "#7");
			Assert.AreEqual (new Rect (0, 0, 100, 100), LayoutInformation.GetLayoutSlot (poker), "#8");
		}
Exemple #39
0
		public void ArrangeOverride_Constraints2 ()
		{
			Size measureSize = new Size (100, 100);
			Rect arrangeRect = new Rect (0, 0, 100, 100);

			LayoutPoker poker = new LayoutPoker {
				MeasureOverrideResult = new Size (50, 50),
				ArrangeOverrideResult = new Size (100, 100)
			};

			poker.Measure (measureSize);
			poker.Arrange (arrangeRect);

			Assert.AreEqual (new Size (100, 100), poker.MeasureOverrideArg, "#1");
			Assert.AreEqual (new Size (50, 50), poker.DesiredSize, "#2");
			Assert.AreEqual (new Size (100, 100), poker.ArrangeOverrideArg, "#3");
			Assert.AreEqual (new Size (100, 100), poker.RenderSize, "#4");
			Assert.AreEqual (new Size (100, 100), new Size (poker.ActualWidth, poker.ActualHeight), "#5");
			Assert.IsNull (LayoutInformation.GetLayoutClip (poker), "#6");
			Assert.AreEqual (new Rect (0, 0, 100, 100), LayoutInformation.GetLayoutSlot (poker), "#7");
		}
Exemple #40
0
		public void AlignmentTest ()
		{
			Border b = new Border ();
			Border b2 = new Border ();
			LayoutPoker poker = new LayoutPoker ();

			b.Child = b2;
			b2.Child = poker;
			b.Width = 50;
			
			b2.HorizontalAlignment = HorizontalAlignment.Right;
			b2.VerticalAlignment = VerticalAlignment.Bottom;

			poker.MeasureResult = new Size (20,20);
			b.Measure (new Size (100,100));

			Assert.AreEqual (new Size (50,100), poker.MeasureArg, "poker m arg");
			Assert.AreEqual (new Size (20,20), poker.DesiredSize, "poker m result");
			Assert.AreEqual (new Size (0,0), poker.BaseMeasureResult, "poker base result");
			
			Assert.AreEqual (new Size (50,20), b.DesiredSize, "b desiredsize");
			Assert.AreEqual (new Size (20,20), b2.DesiredSize, "b2 desiredsize");
			
			poker.ArrangeResult = new Size (20,20);
			b.Arrange (new Rect (0,0,b.DesiredSize.Width,b.DesiredSize.Height));

			Assert.AreEqual (new Size (20,20),poker.ArrangeArg, "poker aa");
			
			Assert.AreEqual (new Rect (0,0,20,20).ToString (), LayoutInformation.GetLayoutSlot (poker).ToString (), "poker slot");
			Assert.AreEqual (new Rect (0,0,50,20).ToString (), LayoutInformation.GetLayoutSlot (b2).ToString (), "b2 slot");
			Assert.AreEqual (new Rect (0,0,50,20).ToString (), LayoutInformation.GetLayoutSlot (b).ToString (), "b slot");
		}
Exemple #41
0
		public void ChildMeasureTest2 ()
		{
			LayoutPoker c = new LayoutPoker ();
			Rectangle r = new Rectangle();

			c.Children.Add (r);

			r.Width = 50;
			r.Height = 50;
			
			c.Measured += (Size real) => { c.MeasureResult = real; };
			c.Measure (new Size (100, 100));

			Assert.AreEqual (new Size (0,0), c.BaseMeasureResult);
		}
Exemple #42
0
		public void VisualTree_WithChild()
		{
			var box = new Viewbox();
			var child = new LayoutPoker();
			box.Child = child;

			CreateAsyncTest(box,
				() => {
					/* Ensure that the box has been measured at least once */
				}, () =>  {
					Assert.VisualChildren(box, "#1",
						new VisualNode<Border>("#a",
							new VisualNode<LayoutPoker>("#b")
						)
					);
				}
			);
		}
Exemple #43
0
		public void ChildMeasureTest3 ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			Rectangle r = new Rectangle();
			b.Child = c;
			c.Children.Add (r);
			c.Background = new SolidColorBrush (Colors.Red);

			r.Width = 50;
			r.Height = 50;
			
			bool called = false;
			c.Measured += (Size real) => { 
				c.MeasureResult = real; 
				called = true;
			};
			
			b.Measure (new Size (100, 100));
			Assert.IsTrue (called, "measure called");

			Assert.AreEqual (new Size (0,0), c.DesiredSize);
			Assert.AreEqual (new Size (0,0), r.DesiredSize);
			Assert.AreEqual (new Size (0,0), b.DesiredSize);
		}
Exemple #44
0
		public void ChildlessMeasureTest4 ()
		{
			LayoutPoker c = new LayoutPoker ();
			Size s = new Size (10,10);
			Border b = new Border ();
			
			b.Child = c;
			
			c.Width = 9;
			c.Height = 9;
			c.MeasureResult = new Size (5, 5);
			c.Margin = new Thickness (1);			
			c.Measure (s);

			Assert.AreEqual (new Size (c.Width, c.Height), c.MeasureArg, "MeasureArg");
			Assert.AreEqual (new Size (10, 10), c.DesiredSize, "DesiredSize");
		}
Exemple #45
0
		public void ComputeWidthCallsLayoutParent ()
		{
			Border b = new Border ();
			LayoutPoker c = new LayoutPoker ();
			b.Child = c;

			int called = 0;
			c.Measured += (Size real) => { 
				c.MeasureResult = real; 
				called++;
			};

			b.Width = 50;
			b.Height = 50;
			
			Assert.AreEqual (0, called);

			b.Measure (new Size (100, 100));
			
			Assert.AreEqual (1, called);
		}
Exemple #46
0
		public void MinWidthOnParentTest ()
		{
			StackPanel sp = new StackPanel { MinWidth = 200 };
			LayoutPoker c = new LayoutPoker { Height = 25 };

			sp.Children.Add (c);

			sp.Measure (new Size (100, 100));

			Assert.AreEqual (new Size (200,25), c.MeasureArg, "c.Measure");

			Assert.AreEqual (new Size (0,25), c.DesiredSize);

			sp.Arrange (new Rect (0, 0, 100, 100));

			Assert.AreEqual (new Size (200,25), c.ArrangeArg, "c.Arrange");

			// now check desired/render sizes

			// the child is oblivious to the parent's maxheight
			Assert.AreEqual (new Size (0,0), c.RenderSize, "c.RenderedSize");
			Assert.AreEqual (new Size (0,25), c.DesiredSize, "c.DesiredSize");
			Assert.IsNull (LayoutInformation.GetLayoutClip (c), "c.LayoutClip == null");

			// the parent's maxheight clips
			Assert.AreEqual (new Size (200,100), sp.RenderSize, "sp.RenderSize");
			Assert.AreEqual (new Size (100,25), sp.DesiredSize, "sp.DesiredSize");
			Assert.IsNotNull (LayoutInformation.GetLayoutClip (sp), "sp.LayoutClip != null");
		}
Exemple #47
0
		public void ChildMeasureTest1 ()
		{
			LayoutPoker c = new LayoutPoker ();
			Rectangle r = new Rectangle();

			c.Children.Add (r);

			r.Width = 50;
			r.Height = 50;

			c.Measure (new Size (10, 10));

			Assert.AreEqual (new Size (0,0), c.DesiredSize);
		}
Exemple #48
0
		public void ComplexLayout2 ()
		{
			Grid g = new Grid ();

			RowDefinition rdef;
			ColumnDefinition cdef;

			rdef = new RowDefinition ();
			rdef.Height = new GridLength (200);
			g.RowDefinitions.Add (rdef);

			cdef = new ColumnDefinition ();
			cdef.Width = new GridLength (200);
			g.ColumnDefinitions.Add (cdef);

			g.Margin = new Thickness (5);

			LayoutPoker c = new LayoutPoker ();

			Grid.SetRow (c, 0);
			Grid.SetColumn (c, 0);

			g.Children.Add (c);

			c.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));

			// first test with the child sized larger than the row/column definitions
			c.Width = 400;
			c.Height = 400;

			g.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));

			Assert.AreEqual (400, c.Width);
			Assert.AreEqual (400, c.Height);

			Assert.AreEqual (new Size (200, 200), c.DesiredSize, "c DesiredSize0");
			Assert.AreEqual (new Size (400, 400), c.MeasureArg, "c MeasureArg0");
			Assert.AreEqual (new Size (210, 210), g.DesiredSize, "grid DesiredSize0");

			g.Measure (new Size (100, 100));

			Assert.AreEqual (new Size (100, 100), g.DesiredSize, "grid DesiredSize1");
			Assert.AreEqual (new Size (400, 400), c.MeasureArg, "c MeasureArg");
			Assert.AreEqual (new Size (200, 200), c.DesiredSize, "c DesiredSize1");

			// now test with the child sized smaller than the row/column definitions
			c.Width = 100;
			c.Height = 100;

			g.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));

			Assert.AreEqual (new Size (100, 100), c.MeasureArg, "c MeasureArg2");
			Assert.AreEqual (new Size (210, 210), g.DesiredSize, "grid DesiredSize2");
		}
Exemple #49
0
		public void NegativeMargin ()
		{
			var grid = new Grid ();
			var poker = new LayoutPoker {
				Margin = new Thickness (-1, -1, -1, -1),
				MeasureOverrideResult = new Size (80, 80),
				ArrangeOverrideResult = new Size (80, 80)
			};

			grid.Children.Add (poker);

			grid.Measure (infinity);
			grid.Arrange (new Rect (0, 0, 50, 50));

			Assert.AreEqual (new Size (78, 78), grid.DesiredSize, "#1");
			Assert.AreEqual (new Size (78, 78), poker.DesiredSize, "#2");

			Assert.AreEqual (new Size (78, 78), new Size (grid.ActualWidth, grid.ActualHeight), "#3");
			Assert.AreEqual (new Size (80, 80), new Size (poker.ActualWidth, poker.ActualHeight), "#4");

			Assert.AreEqual (new Size (78, 78), grid.RenderSize, "#5");
			Assert.AreEqual (new Size (80, 80), poker.RenderSize, "#6");

			RectangleGeometry geom = LayoutInformation.GetLayoutClip (grid) as RectangleGeometry;
			Assert.IsNotNull (geom, "#7");
			Assert.AreEqual (new Rect (0, 0, 50, 50), geom.Rect, "#8");
			Assert.IsNull (LayoutInformation.GetLayoutClip (poker), "#9");

			Assert.AreEqual (new Rect (0, 0, 50, 50), LayoutInformation.GetLayoutSlot (grid), "#10");
			Assert.AreEqual (new Rect (0, 0, 78, 78), LayoutInformation.GetLayoutSlot (poker), "#11");
		}