|
|
|
@ -1538,6 +1538,69 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Remove_Child_Should_Invalidate_Grid_And_Be_Operational() |
|
|
|
{ |
|
|
|
var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") }; |
|
|
|
|
|
|
|
grid.Children.Add(new Decorator() { [Grid.ColumnProperty] = 0 }); |
|
|
|
grid.Children.Add(new Decorator() { Width = 10, Height = 10, [Grid.ColumnProperty] = 1 }); |
|
|
|
|
|
|
|
var size = new Size(100, 100); |
|
|
|
grid.Measure(size); |
|
|
|
grid.Arrange(new Rect(size)); |
|
|
|
|
|
|
|
Assert.True(grid.IsMeasureValid); |
|
|
|
Assert.True(grid.IsArrangeValid); |
|
|
|
|
|
|
|
Assert.Equal(90, grid.Children[0].Bounds.Width); |
|
|
|
Assert.Equal(10, grid.Children[1].Bounds.Width); |
|
|
|
|
|
|
|
grid.Children.RemoveAt(1); |
|
|
|
|
|
|
|
Assert.False(grid.IsMeasureValid); |
|
|
|
Assert.False(grid.IsArrangeValid); |
|
|
|
|
|
|
|
grid.Measure(size); |
|
|
|
grid.Arrange(new Rect(size)); |
|
|
|
|
|
|
|
Assert.True(grid.IsMeasureValid); |
|
|
|
Assert.True(grid.IsArrangeValid); |
|
|
|
|
|
|
|
Assert.Equal(100, grid.Children[0].Bounds.Width); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Add_Child_Should_Invalidate_Grid_And_Be_Operational() |
|
|
|
{ |
|
|
|
var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") }; |
|
|
|
|
|
|
|
grid.Children.Add(new Decorator() { [Grid.ColumnProperty] = 0 }); |
|
|
|
|
|
|
|
var size = new Size(100, 100); |
|
|
|
grid.Measure(size); |
|
|
|
grid.Arrange(new Rect(size)); |
|
|
|
|
|
|
|
Assert.True(grid.IsMeasureValid); |
|
|
|
Assert.True(grid.IsArrangeValid); |
|
|
|
|
|
|
|
Assert.Equal(100, grid.Children[0].Bounds.Width); |
|
|
|
|
|
|
|
grid.Children.Add(new Decorator() { Width = 10, Height = 10, [Grid.ColumnProperty] = 1 }); |
|
|
|
|
|
|
|
Assert.False(grid.IsMeasureValid); |
|
|
|
Assert.False(grid.IsArrangeValid); |
|
|
|
|
|
|
|
grid.Measure(size); |
|
|
|
grid.Arrange(new Rect(size)); |
|
|
|
|
|
|
|
Assert.True(grid.IsMeasureValid); |
|
|
|
Assert.True(grid.IsArrangeValid); |
|
|
|
|
|
|
|
Assert.Equal(90, grid.Children[0].Bounds.Width); |
|
|
|
Assert.Equal(10, grid.Children[1].Bounds.Width); |
|
|
|
} |
|
|
|
|
|
|
|
private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) |
|
|
|
{ |
|
|
|
grid.Measure(new Size(100, 100)); |
|
|
|
|