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); }
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"); }
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"); }
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); }
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"); }
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"); }
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"); }
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"); }
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"); }
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; }
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; }
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); }
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"); }
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); }
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"); }
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"); }
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"); } ); }
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"); }
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"); } ); }
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"); }
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"); }
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") ) ); } ); }
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"); }
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); }
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"); }
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"); }
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); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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); }
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") ) ); } ); }
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); }
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"); }
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); }
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"); }
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); }
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"); }
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"); }