本文整理汇总了C#中System.Windows.Controls.Grid.CheckRowHeights方法的典型用法代码示例。如果您正苦于以下问题:C# Grid.CheckRowHeights方法的具体用法?C# Grid.CheckRowHeights怎么用?C# Grid.CheckRowHeights使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Controls.Grid
的用法示例。
在下文中一共展示了Grid.CheckRowHeights方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StarRowsWithChild2_NoSpan_ExplicitSize_InTree
public void StarRowsWithChild2_NoSpan_ExplicitSize_InTree ()
{
// Check what happens when there are two explicit rows and no explicit column
Grid grid = new Grid {
Width = 75,
Height = 75,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Bottom,
};
var poker = new SettablePanel {
Grid = grid,
MeasureArg = Infinity
};
grid.AddRows (new GridLength (1, GridUnitType.Star), new GridLength (1, GridUnitType.Star));
grid.Children.Add (new MyContentControl (50, 50));
CreateAsyncTest (poker,
() => {
Assert.AreEqual (new Size (75, 75), grid.DesiredSize, "#1");
grid.CheckRowHeights ("#2", 37.5, 37.5);
poker.MeasureArg = new Size (100, 100);
poker.InvalidateSubtree ();
}, () => {
Assert.AreEqual (new Size (75, 75), grid.DesiredSize, "#3");
grid.CheckRowHeights ("#4", 37.5, 37.5);
}
);
}
示例2: StarRowsWithChild2_NoSpan_ExplicitSize
public void StarRowsWithChild2_NoSpan_ExplicitSize ()
{
// Check what happens when there are two explicit rows and no explicit column
Grid grid = new Grid {
Width = 75,
Height = 75,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Bottom,
};
grid.AddRows (new GridLength (1, GridUnitType.Star), new GridLength (1, GridUnitType.Star));
grid.Children.Add (new MyContentControl (50, 50));
// Initial values
Assert.AreEqual (new Size (0, 0), grid.DesiredSize, "#1");
grid.CheckRowHeights ("#2", 0, 0);
// After measure
grid.Measure (Infinity);
grid.Arrange (new Rect (0, 0, grid.DesiredSize.Width, grid.DesiredSize.Height));
Assert.AreEqual (new Size (75, 75), grid.DesiredSize, "#3");
grid.CheckRowHeights ("#4", 37.5, 37.5);
// Measure again
grid.Measure (new Size (100, 100));
grid.Arrange (new Rect (0, 0, grid.DesiredSize.Width, grid.DesiredSize.Height));
Assert.AreEqual (new Size (75, 75), grid.DesiredSize, "#5");
grid.CheckRowHeights ("#6", 37.5, 37.5);
}
示例3: StarRowsWithChild2_InTree
public void StarRowsWithChild2_InTree ()
{
// Check what happens when there are two explicit rows and no explicit column
Grid grid = new Grid ();
var poker = new SettablePanel {
Grid = grid,
MeasureArg = Infinity,
};
grid.AddRows (new GridLength (1, GridUnitType.Star), new GridLength (1, GridUnitType.Star));
grid.Children.Add (new MyContentControl (50, 50));
CreateAsyncTest (poker,
() => {
Assert.AreEqual (new Size (50, 50), grid.DesiredSize, "#1");
grid.CheckRowHeights ("#2", 50, 0);
poker.MeasureArg = new Size (100, 100);
poker.InvalidateSubtree ();
}, () => {
Assert.AreEqual (new Size (50, 50), grid.DesiredSize, "#3");
grid.CheckRowHeights ("#4", 50, 0);
}
);
}
示例4: AutoAndFixedRows3
public void AutoAndFixedRows3 ()
{
Grid grid = new Grid { Width = 10, Height = 10 };
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);
CreateAsyncTest (grid,
() => {
grid.CheckRowHeights ("#1", 20, 20);
grid.RowDefinitions.Insert (0, new RowDefinition { Height = GridLength.Auto });
}, () => {
grid.CheckRowHeights ("#2", 0, 50, 20);
grid.RowDefinitions [1].MaxHeight = 35;
}, () => {
grid.CheckRowHeights ("#3", 15, 35, 20);
grid.RowDefinitions [1].MaxHeight = 20;
grid.ChangeRowSpan (0, 4);
}, () => {
grid.CheckRowHeights ("#4", 0, 20, 30);
grid.AddRows (new GridLength (20));
}, () => {
grid.CheckRowHeights ("#5", 0, 20, 20, 20);
}
);
}
示例5: StarRowsWithChild2
public void StarRowsWithChild2 ()
{
// Check what happens when there are two explicit rows and no explicit column
Grid grid = new Grid ();
grid.AddRows (new GridLength (1, GridUnitType.Star), new GridLength (1, GridUnitType.Star));
grid.Children.Add (new MyContentControl (50, 50));
// Initial values
Assert.AreEqual (new Size (0, 0), grid.DesiredSize, "#1");
grid.CheckRowHeights ("#2", 0, 0);
// After measure
grid.Measure (Infinity);
grid.Arrange (new Rect (0, 0, grid.DesiredSize.Width, grid.DesiredSize.Height));
Assert.AreEqual (new Size (50, 50), grid.DesiredSize, "#3");
grid.CheckRowHeights ("#4", 50, 0);
// Measure again
grid.Measure (new Size (100, 100));
grid.Arrange (new Rect (0, 0, grid.DesiredSize.Width, grid.DesiredSize.Height));
Assert.AreEqual (new Size (50, 50), grid.DesiredSize, "#5");
grid.CheckRowHeights ("#6", 50, 0);
}
示例6: AutoRows4
public void AutoRows4 ()
{
// See how rowspan = 3 affects this with 5 rows.
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50), new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto, GridLength.Auto, GridLength.Auto);
// Give first child a rowspan of 2
grid.AddChild (new LayoutPoker { Width = 50, Height = 50 }, 0, 0, 1, 1);
grid.AddChild (new LayoutPoker { Width = 50, Height = 60 }, 0, 1, 3, 1);
CreateAsyncTest (grid,
() => {
// If an element spans across multiple rows and one of those rows
// is already large enough to contain that element, it puts itself
// entirely inside that row
grid.CheckRowHeights ("#1", 53.33, 3.33, 3.33, 0, 0);
grid.ChangeRow (1, 1);
}, () => {
// An 'auto' row which has no children whose rowspan/colspan
// *ends* in that row has a height of zero
grid.CheckRowHeights ("#2", 50, 20, 20, 20, 0);
grid.ChangeRow (1, 2);
}, () => {
// If an element which spans multiple rows is the only element in
// the rows it spans, it divides evenly between the rows it spans
grid.CheckRowHeights ("#3", 50, 0, 20, 20, 20);
grid.ChangeRow (1, 0);
grid.ChangeRow (0, 1);
}, () => {
// If there are two auto rows beside each other and an element spans those
// two rows, the total height is averaged between the two rows.
grid.CheckRowHeights ("#4", 3.33, 53.33, 3.33, 0, 0);
}
);
}
示例7: AutoRows5
public void AutoRows5 ()
{
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto, GridLength.Auto, GridLength.Auto);
grid.AddChild (new LayoutPoker { Width = 50, Height = 50 }, 0, 0, 3, 1);
grid.AddChild (new LayoutPoker { Width = 50, Height = 60 }, 1, 0, 3, 1);
// When calculating the heights of automatic rows, the children added to the grid
// distribute their height in the opposite order in which they were added.
CreateAsyncTest (grid,
() => {
// Here the element with height 60 distributes its height first
grid.CheckRowHeights ("#1", 3.33, 23.33, 23.33, 20, 0);
grid.ChangeRow (1, 1);
grid.ChangeRow (0, 1);
grid.ChangeRow (1, 0);
}, () => {
// Reversing the rows does not stop the '60' element from
// Distributing its height first
grid.CheckRowHeights ("#2", 20, 23.33, 23.33, 3.33, 0);
// Now reverse the order in which the elements are added so that
// the '50' element distributes first.
grid.Children.Clear ();
grid.AddChild (new LayoutPoker { Width = 50, Height = 60 }, 1, 0, 3, 1);
grid.AddChild (new LayoutPoker { Width = 50, Height = 50 }, 0, 0, 3, 1);
}, () => {
grid.CheckRowHeights ("#3", 16.66, 25.55, 25.55, 8.88, 0);
grid.ChangeRow (1, 1);
grid.ChangeRow (0, 1);
grid.ChangeRow (1, 0);
}, () => {
grid.CheckRowHeights ("#4", 16.66, 25.55, 25.55, 8.88, 0);
}
);
}
示例8: AutoRows2
public void AutoRows2 ()
{
// Start off with two elements in the first row with the smaller element having rowspan = 2
// and see how rowspan affects the rendering.
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50), new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto);
grid.AddChild (new LayoutPoker { Width = 50, Height = 50 }, 0, 0, 2, 1);
grid.AddChild (new LayoutPoker { Width = 50, Height = 60 }, 0, 1, 1, 1);
// Start off with both elements at row 1, and the smaller element having rowspan = 2
CreateAsyncTest (grid,
() => {
// If an element spans across multiple rows and one of those rows
// is already large enough to contain that element, it puts itself
// entirely inside that row
grid.CheckRowHeights ("#1", 60, 0, 0);
grid.ChangeRow (1, 1);
}, () => {
// An 'auto' row which has no children whose rowspan/colspan
// *ends* in that row has a height of zero
grid.CheckRowHeights ("#2", 0, 60, 0);
grid.ChangeRow (1, 2);
}, () => {
// If an element which spans multiple rows is the only element in
// the rows it spans, it divides evenly between the rows it spans
grid.CheckRowHeights ("#2", 25, 25, 60);
grid.ChangeRow (1, 0);
grid.ChangeRow (0, 1);
}, () => {
grid.CheckRowHeights ("#2", 60, 25, 25);
}
);
}
示例9: AutoRows3
public void AutoRows3 ()
{
// Start off with two elements in the first row with the larger element having rowspan = 2
// and see how rowspan affects the rendering.
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50), new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto);
grid.AddChild (new LayoutPoker { Width = 50, Height = 50 }, 0, 0, 1, 1);
grid.AddChild (new LayoutPoker { Width = 50, Height = 60 }, 0, 1, 2, 1);
CreateAsyncTest (grid,
() => {
grid.CheckRowHeights ("#1", 55, 5, 0);
grid.ChangeRow (1, 1);
}, () => {
grid.CheckRowHeights ("#2", 50, 30, 30);
grid.ChangeRow (1, 2);
}, () => {
grid.CheckRowHeights ("#3", 50, 0, 60);
grid.ChangeRow (1, 0);
grid.ChangeRow (0, 1);
}, () => {
grid.CheckRowHeights ("#3", 5, 55, 0);
}
);
}
示例10: AutoRows
public void AutoRows ()
{
// This checks that rows expand to be large enough to hold the largest child
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50), new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto);
grid.AddChild (new LayoutPoker { Width = 50, Height = 50 }, 0, 0, 1, 1);
grid.AddChild (new LayoutPoker { Width = 50, Height = 60 }, 0, 1, 1, 1);
CreateAsyncTest (grid,
() => {
grid.CheckRowHeights ("#1", 60, 0);
Grid.SetRow ((FrameworkElement) grid.Children [1], 1);
}, () => {
grid.CheckRowHeights ("#2", 50, 60);
}
);
}
示例11: RowspanAutoTest
public void RowspanAutoTest ()
{
// This test demonstrates the following rules:
// 1) Elements with RowSpan/ColSpan == 1 distribute their height first
// 2) The rest of the elements distribute height in LIFO order
Grid grid = new Grid ();
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto);
grid.AddColumns (new GridLength (50));
var child50 = new MyContentControl (50, 50);
var child60 = new MyContentControl (50, 60);
grid.AddChild (child50, 0, 0, 1, 1);
grid.AddChild (child60, 0, 0, 1, 1);
CreateAsyncTest (grid,
() => {
// Check the initial values
grid.CheckRowHeights ("#1", 60, 0, 0);
// Now make the smaller element use rowspan = 2
Grid.SetRowSpan (child50, 2);
}, () => {
grid.CheckRowHeights ("#2", 60, 0, 0);
// Then make the larger element us rowspan = 2
Grid.SetRowSpan (child50, 1);
Grid.SetRowSpan (child60, 2);
}, () => {
grid.CheckRowHeights ("#3", 55, 5, 0);
// Swap the order in which they are added to the grid
grid.Children.Clear ();
grid.AddChild (child60, 0, 0, 2, 0);
grid.AddChild (child50, 0, 0, 1, 0);
}, () => {
// Swapping the order has no effect here
grid.CheckRowHeights ("#4", 55, 5, 0);
// Then give both rowspan = 2
Grid.SetRowSpan (child50, 2);
}, () => {
grid.CheckRowHeights ("#5", 30, 30, 0);
// Finally give the larger element rowspan = 3
Grid.SetRowSpan (child60, 3);
}, () => {
grid.CheckRowHeights ("#6", 28.333, 28.333, 3.333);
// Swap the order in which the elements are added again
grid.Children.Clear ();
grid.AddChild (child50, 0, 0, 2, 0);
grid.AddChild (child60, 0, 0, 3, 0);
}, () => {
grid.CheckRowHeights ("#7", 25, 25, 20);
}
);
}
示例12: MeasureAutoAndFixedRows
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");
}
示例13: MeasureAutoRows4
public void MeasureAutoRows4 ()
{
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50), new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto, GridLength.Auto, GridLength.Auto);
grid.AddChild (new MyContentControl (50, 30), 0, 1, 3, 1);
grid.AddChild (new MyContentControl (50, 90), 0, 1, 1, 1);
grid.AddChild (new MyContentControl (50, 50), 0, 1, 2, 1);
grid.AddChild (new MyContentControl (50, 70), 1, 1, 4, 1);
grid.AddChild (new MyContentControl (50, 120), 1, 1, 2, 1);
grid.AddChild (new MyContentControl (50, 30), 2, 1, 3, 1);
grid.AddChild (new MyContentControl (50, 10), 3, 1, 1, 1);
grid.AddChild (new MyContentControl (50, 50), 3, 1, 2, 1);
grid.AddChild (new MyContentControl (50, 80), 3, 1, 2, 1);
grid.AddChild (new MyContentControl (50, 20), 4, 1, 1, 1);
CreateAsyncTest (grid, () => {
grid.CheckRowHeights ("#1", 90, 60, 60, 35, 45);
});
}
示例14: MeasureAutoRows3
public void MeasureAutoRows3 ()
{
Grid grid = new Grid ();
grid.AddColumns (new GridLength (50), new GridLength (50));
grid.AddRows (GridLength.Auto, GridLength.Auto, GridLength.Auto);
grid.AddChild (new MyContentControl (50, 50), 0, 1, 2, 1);
grid.AddChild (new MyContentControl (50, 60), 1, 1, 1, 1);
grid.AddChild (new MyContentControl (50, 70), 0, 1, 3, 1);
CreateAsyncTest (grid, () => {
grid.CheckRowHeights ("#1", 3.33, 63.33, 3.33);
});
}