Ejemplo n.º 1
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");
        }
Ejemplo n.º 2
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");
		}
Ejemplo n.º 3
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");
        }
Ejemplo n.º 4
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");
        }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
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");
		}
Ejemplo n.º 8
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");
        }
Ejemplo n.º 9
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");
        }
Ejemplo n.º 10
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");
        }
Ejemplo n.º 11
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");
		}
Ejemplo n.º 12
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");
		}
Ejemplo n.º 13
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);
		}
Ejemplo n.º 14
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);
		}
Ejemplo n.º 15
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");
		}
Ejemplo n.º 16
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");
		}
Ejemplo n.º 17
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");
		}
Ejemplo n.º 18
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");
		}
Ejemplo n.º 19
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");
		}
Ejemplo n.º 20
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");
		}
Ejemplo n.º 21
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");
		}
Ejemplo n.º 22
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");
		}