void RunTest() { var c = new MyContentControl(); c.SetValue(MyContentControl.MyProperty, null); Style s1 = new Style(typeof(MyContentControl)); s1.Setters.Add(new Setter(MyContentControl.MyProperty, new Wrapper { Value = c })); c.Style = s1; WeakControl = c; GCAndInvoke(() => { if (WeakControl != null) { Fail("TextBox should be collected"); } else { Succeed(); } }); }
public void TwoChildrenMargin_2Columns_1Star_and_2Star_1Row_constSize() { MyGrid g = new MyGrid(); RowDefinition rdef; ColumnDefinition cdef; rdef = new RowDefinition(); rdef.Height = new GridLength(200); g.RowDefinitions.Add(rdef); cdef = new ColumnDefinition(); cdef.Width = new GridLength(1, GridUnitType.Star); g.ColumnDefinitions.Add(cdef); cdef = new ColumnDefinition(); cdef.Width = new GridLength(2, GridUnitType.Star); g.ColumnDefinitions.Add(cdef); g.Margin = new Thickness(5); Canvas c; MyContentControl mc; c = new Canvas(); c.Width = 400; c.Height = 400; mc = new MyContentControl { Content = c }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 0); g.Children.Add(mc); c = new Canvas(); c.Width = 400; c.Height = 400; mc = new MyContentControl { Content = c }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 1); g.Children.Add(mc); g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); g.CheckMeasureArgs("#MeasureOverrideArg", new Size(inf, 200), new Size(inf, 200)); g.Reset(); Assert.AreEqual(new Size(810, 210), g.DesiredSize, "DesiredSize"); g.Measure(new Size(100, 100)); g.CheckMeasureArgs("#MeasureOverrideArg 2", new Size(30, 200), new Size(60, 200)); g.Reset(); Assert.AreEqual(new Size(100, 100), g.DesiredSize, "DesiredSize"); }
void RunTest () { var c = new MyContentControl (); c.SetValue(MyContentControl.MyProperty, null); Style s1 = new Style(typeof(MyContentControl)); s1.Setters.Add(new Setter(MyContentControl.MyProperty, new Wrapper { Value = c })); c.Style = s1; WeakControl = c; GCAndInvoke (() => { if (WeakControl != null) Fail ("TextBox should be collected"); else Succeed (); }); }
public void ConstraintsNotUsedInMeasureOverride() { Rectangle r = new Rectangle { Width = 50, Height = 50 }; MyContentControl c = new MyContentControl { Width = 80, Height = 80, Content = r }; c.Measure(new Size(100, 100)); Assert.AreEqual(new Size(80, 80), c.MeasureOverrideArg, "#1"); Assert.AreEqual(new Size(50, 50), c.MeasureOverrideResult, "#2"); Assert.AreEqual(new Size(50, 50), r.DesiredSize, "#3"); Assert.AreEqual(new Size(80, 80), c.DesiredSize, "#4"); }
public void ArrangeTest() { MyGrid g = new MyGrid(); RowDefinition rdef; ColumnDefinition cdef; rdef = new RowDefinition(); rdef.Height = new GridLength(50); g.RowDefinitions.Add(rdef); cdef = new ColumnDefinition(); cdef.Width = new GridLength(100); g.ColumnDefinitions.Add(cdef); g.Margin = new Thickness(5); var r = new Border(); MyContentControl mc = new MyContentControl { Content = r }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 0); g.Children.Add(mc); g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); g.CheckMeasureArgs("#MeasureOverrideArg", new Size(100, 50)); g.Reset(); Assert.AreEqual(new Size(0, 0), new Size(r.ActualWidth, r.ActualHeight), "r actual after measure"); Assert.AreEqual(new Size(0, 0), new Size(g.ActualWidth, g.ActualHeight), "g actual after measure"); g.Arrange(new Rect(0, 0, g.DesiredSize.Width, g.DesiredSize.Height)); g.CheckRowHeights("#RowHeights", 50); Assert.AreEqual(new Size(0, 0), r.DesiredSize, "r desired 0"); Assert.AreEqual(new Size(110, 60), g.DesiredSize, "g desired 1"); Assert.AreEqual(new Rect(0, 0, 100, 50).ToString(), LayoutInformation.GetLayoutSlot(r).ToString(), "slot"); Assert.AreEqual(new Size(100, 50), new Size(r.ActualWidth, r.ActualHeight), "r actual after arrange"); Assert.AreEqual(new Size(100, 50), new Size(g.ActualWidth, g.ActualHeight), "g actual after arrange"); }
public void ArrangeChild_ColSpan2_2Columns_constSize_and_1Star_1Row_constSize() { MyGrid g = new MyGrid(); g.AddRows(new GridLength(200)); g.AddColumns(new GridLength(200), new GridLength(2, GridUnitType.Star)); g.Margin = new Thickness(5); MyContentControl mc = new MyContentControl { Content = new Canvas { Width = 400, Height = 400 } }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 0); Grid.SetColumnSpan(mc, 2); g.Children.Add(mc); TestPanel.Width = 500; TestPanel.Height = 500; CreateAsyncTest(g, () => { g.CheckMeasureArgs("#MeasureOverrideArg", new Size(490, 200)); g.CheckRowHeights("#RowHeights", 200); g.CheckColWidths("#ColWidths", 200, 290); TestPanel.Width = 100; TestPanel.Height = 100; g.Reset(); }, () => { g.CheckMeasureArgs("#MeasureOverrideArg 2", new Size(200, 200)); g.CheckRowHeights("#RowHeights 2", 200); g.CheckColWidths("#ColWidths 2", 200, 0); } ); }
void MeasureOrder5Impl(bool checkOrder) { TestPanel.Width = 500; TestPanel.Height = 500; MyContentControl star = ContentControlWithChild(); MyContentControl pixel = ContentControlWithChild(); MyContentControl auto = ContentControlWithChild(); MyGrid grid = new MyGrid(); grid.AddRows(new GridLength(1, GridUnitType.Star), GridLength.Auto, new GridLength(30, GridUnitType.Pixel), new GridLength(30, GridUnitType.Pixel)); grid.AddColumns(new GridLength(50, GridUnitType.Pixel)); CreateAsyncTest(grid, () => { grid.AddChild(star, 0, 0, 1, 1); grid.AddChild(auto, 1, 0, 1, 1); grid.AddChild(pixel, 2, 0, 1, 1); }, () => { if (checkOrder) { grid.CheckMeasureOrder("#1", 1, 2, 0); grid.CheckMeasureArgs("#a", new Size(50, inf), new Size(50, 30), new Size(50, 390)); } grid.CheckFinalMeasureArg("#a2", new Size(50, 390), new Size(50, inf), new Size(50, 30)); grid.CheckRowHeights("#b", 390, 50, 30, 30); grid.Children.Clear(); grid.AddChild(star, 0, 0, 1, 1); grid.AddChild(pixel, 2, 0, 1, 1); grid.AddChild(auto, 1, 0, 1, 1); grid.Reset(); }, () => { if (checkOrder) { grid.CheckMeasureOrder("#2", 1, 2, 0); grid.CheckMeasureArgs("#c", new Size(50, 30), new Size(50, inf), new Size(50, 390)); } grid.CheckFinalMeasureArg("#c2", new Size(50, 390), new Size(50, 30), new Size(50, inf)); grid.CheckRowHeights("#d", 390, 50, 30, 30); grid.Children.Clear(); grid.AddChild(pixel, 2, 0, 1, 1); grid.AddChild(star, 0, 0, 1, 1); grid.AddChild(auto, 1, 0, 1, 1); grid.Reset(); }, () => { if (checkOrder) { grid.CheckMeasureOrder("#3", 0, 2, 1); grid.CheckMeasureArgs("#e", new Size(50, 30), new Size(50, inf), new Size(50, 390)); } grid.CheckFinalMeasureArg("#e2", new Size(50, 30), new Size(50, 390), new Size(50, inf)); grid.CheckRowHeights("#f", 390, 50, 30, 30); grid.Children.Clear(); grid.AddChild(pixel, 2, 0, 1, 1); grid.AddChild(auto, 1, 0, 1, 1); grid.AddChild(star, 0, 0, 1, 1); grid.Reset(); }, () => { if (checkOrder) { grid.CheckMeasureOrder("#4", 0, 1, 2); grid.CheckMeasureArgs("#g", new Size(50, 30), new Size(50, inf), new Size(50, 390)); } grid.CheckFinalMeasureArg("#g2", new Size(50, 30), new Size(50, inf), new Size(50, 390)); grid.CheckRowHeights("#h", 390, 50, 30, 30); grid.Children.Clear(); grid.AddChild(auto, 1, 0, 1, 1); grid.AddChild(pixel, 2, 0, 1, 1); grid.AddChild(star, 0, 0, 1, 1); grid.Reset(); }, () => { if (checkOrder) { grid.CheckMeasureOrder("#5", 0, 1, 2); grid.CheckMeasureArgs("#i", new Size(50, inf), new Size(50, 30), new Size(50, 390)); } grid.CheckFinalMeasureArg("#i2", new Size(50, inf), new Size(50, 30), new Size(50, 390)); grid.CheckRowHeights("#j", 390, 50, 30, 30); grid.Children.Clear(); grid.AddChild(auto, 1, 0, 1, 1); grid.AddChild(star, 0, 0, 1, 1); grid.AddChild(pixel, 2, 0, 1, 1); grid.Reset(); }, () => { if (checkOrder) { grid.CheckMeasureOrder("#6", 0, 2, 1); grid.CheckMeasureArgs("#k", new Size(50, inf), new Size(50, 30), new Size(50, 390)); } grid.CheckRowHeights("#l", 390, 50, 30, 30); } ); }
public void ComplexLayout1() { MyGrid g = new MyGrid(); RowDefinition rdef; ColumnDefinition cdef; // Add rows rdef = new RowDefinition(); rdef.Height = new GridLength(200); g.RowDefinitions.Add(rdef); rdef = new RowDefinition(); rdef.Height = new GridLength(200); g.RowDefinitions.Add(rdef); cdef = new ColumnDefinition(); cdef.Width = GridLength.Auto; g.ColumnDefinitions.Add(cdef); cdef = new ColumnDefinition(); cdef.Width = GridLength.Auto; g.ColumnDefinitions.Add(cdef); Canvas child1, child2, child3; MyContentControl mc; // child1 child1 = new Canvas(); child1.Width = 200; child1.Height = 200; mc = new MyContentControl { Content = child1 }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 0); Grid.SetColumnSpan(mc, 2); g.Children.Add(mc); // child2 child2 = new Canvas(); child2.Width = 150; child2.Height = 200; mc = new MyContentControl { Content = child2 }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 0); g.Children.Add(mc); // child3 child3 = new Canvas(); child3.Width = 200; child3.Height = 200; mc = new MyContentControl { Content = child3 }; Grid.SetRow(mc, 0); Grid.SetColumn(mc, 0); g.Children.Add(mc); g.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); g.CheckMeasureArgs("#MeasureOverrideArg", new Size(inf, 200), new Size(inf, 200), new Size(inf, 200)); g.Reset(); Assert.AreEqual(new Size(200, 400), g.DesiredSize, "DesiredSize"); }