public void MeasureAutoAndFixedRows () { Grid grid = new Grid { }; grid.AddColumns (new GridLength (50), new GridLength (50)); grid.AddRows (new GridLength (20), new GridLength (20)); grid.AddChild (new MyContentControl (50, 50), 0, 1, 2, 1); grid.Measure (Infinity); grid.CheckRowHeights ("#1", 20, 20); grid.CheckMeasureSizes ("#2", new Size (50, 40)); Assert.AreEqual (new Size (100, 40), grid.DesiredSize, "#3"); grid.RowDefinitions [0].Height = new GridLength (30); grid.Measure (Infinity); grid.CheckRowHeights ("#4", 30, 20); grid.CheckMeasureSizes ("#5", new Size (50, 50)); Assert.AreEqual (new Size (100, 50), grid.DesiredSize, "#6"); grid.RowDefinitions.Insert (0, new RowDefinition { Height = GridLength.Auto }); grid.Measure (Infinity); grid.CheckRowHeights ("#7", double.PositiveInfinity, 30, 20); grid.CheckMeasureSizes ("#8", new Size (50, double.PositiveInfinity)); Assert.AreEqual (new Size (100, 70), grid.DesiredSize, "#9"); grid.Children.Clear (); grid.AddChild (new MyContentControl (50, 150), 0, 1, 2, 1); grid.Measure (Infinity); grid.CheckDesired ("#13", new Size (50, 150)); grid.CheckRowHeights ("#10", double.PositiveInfinity, 30, 20); grid.CheckMeasureSizes ("#11", new Size (50, double.PositiveInfinity)); grid.CheckMeasureResult ("#12", new Size (50, 150)); Assert.AreEqual (new Size (100, 170), grid.DesiredSize, "#12"); }