csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.6 KiB
144 lines
4.6 KiB
using Avalonia.Controls.Primitives;
|
|
using Xunit;
|
|
|
|
namespace Avalonia.Controls.UnitTests.Primitives
|
|
{
|
|
public class UniformGridTests
|
|
{
|
|
[Fact]
|
|
public void Grid_Columns_Equals_Rows_For_Auto_Columns_And_Rows()
|
|
{
|
|
var target = new UniformGrid()
|
|
{
|
|
Children =
|
|
{
|
|
new Border { Width = 50, Height = 70 },
|
|
new Border { Width = 30, Height = 50 },
|
|
new Border { Width = 80, Height = 90 }
|
|
}
|
|
};
|
|
|
|
target.Measure(Size.Infinity);
|
|
target.Arrange(new Rect(target.DesiredSize));
|
|
|
|
// 2 * 2 grid
|
|
Assert.Equal(new Size(2 * 80, 2 * 90), target.Bounds.Size);
|
|
}
|
|
|
|
[Fact]
|
|
public void Grid_Expands_Vertically_For_Columns_With_Auto_Rows()
|
|
{
|
|
var target = new UniformGrid()
|
|
{
|
|
Columns = 2,
|
|
Children =
|
|
{
|
|
new Border { Width = 50, Height = 70 },
|
|
new Border { Width = 30, Height = 50 },
|
|
new Border { Width = 80, Height = 90 },
|
|
new Border { Width = 20, Height = 30 },
|
|
new Border { Width = 40, Height = 60 }
|
|
}
|
|
};
|
|
|
|
target.Measure(Size.Infinity);
|
|
target.Arrange(new Rect(target.DesiredSize));
|
|
|
|
// 2 * 3 grid
|
|
Assert.Equal(new Size(2 * 80, 3 * 90), target.Bounds.Size);
|
|
}
|
|
|
|
[Fact]
|
|
public void Grid_Extends_For_Columns_And_First_Column_With_Auto_Rows()
|
|
{
|
|
var target = new UniformGrid()
|
|
{
|
|
Columns = 3,
|
|
FirstColumn = 2,
|
|
Children =
|
|
{
|
|
new Border { Width = 50, Height = 70 },
|
|
new Border { Width = 30, Height = 50 },
|
|
new Border { Width = 80, Height = 90 },
|
|
new Border { Width = 20, Height = 30 },
|
|
new Border { Width = 40, Height = 60 }
|
|
}
|
|
};
|
|
|
|
target.Measure(Size.Infinity);
|
|
target.Arrange(new Rect(target.DesiredSize));
|
|
|
|
// 3 * 3 grid
|
|
Assert.Equal(new Size(3 * 80, 3 * 90), target.Bounds.Size);
|
|
}
|
|
|
|
[Fact]
|
|
public void Grid_Expands_Horizontally_For_Rows_With_Auto_Columns()
|
|
{
|
|
var target = new UniformGrid()
|
|
{
|
|
Rows = 2,
|
|
Children =
|
|
{
|
|
new Border { Width = 50, Height = 70 },
|
|
new Border { Width = 30, Height = 50 },
|
|
new Border { Width = 80, Height = 90 },
|
|
new Border { Width = 20, Height = 30 },
|
|
new Border { Width = 40, Height = 60 }
|
|
}
|
|
};
|
|
|
|
target.Measure(Size.Infinity);
|
|
target.Arrange(new Rect(target.DesiredSize));
|
|
|
|
// 3 * 2 grid
|
|
Assert.Equal(new Size(3 * 80, 2 * 90), target.Bounds.Size);
|
|
}
|
|
|
|
[Fact]
|
|
public void Grid_Size_Is_Limited_By_Rows_And_Columns()
|
|
{
|
|
var target = new UniformGrid()
|
|
{
|
|
Columns = 2,
|
|
Rows = 2,
|
|
Children =
|
|
{
|
|
new Border { Width = 50, Height = 70 },
|
|
new Border { Width = 30, Height = 50 },
|
|
new Border { Width = 80, Height = 90 },
|
|
new Border { Width = 20, Height = 30 },
|
|
new Border { Width = 40, Height = 60 }
|
|
}
|
|
};
|
|
|
|
target.Measure(Size.Infinity);
|
|
target.Arrange(new Rect(target.DesiredSize));
|
|
|
|
// 2 * 2 grid
|
|
Assert.Equal(new Size(2 * 80, 2 * 90), target.Bounds.Size);
|
|
}
|
|
|
|
[Fact]
|
|
public void Not_Visible_Children_Are_Ignored()
|
|
{
|
|
var target = new UniformGrid()
|
|
{
|
|
Children =
|
|
{
|
|
new Border { Width = 50, Height = 70 },
|
|
new Border { Width = 30, Height = 50 },
|
|
new Border { Width = 80, Height = 90, IsVisible = false },
|
|
new Border { Width = 20, Height = 30 },
|
|
new Border { Width = 40, Height = 60 }
|
|
}
|
|
};
|
|
|
|
target.Measure(Size.Infinity);
|
|
target.Arrange(new Rect(target.DesiredSize));
|
|
|
|
// 2 * 2 grid
|
|
Assert.Equal(new Size(2 * 50, 2 * 70), target.Bounds.Size);
|
|
}
|
|
}
|
|
}
|
|
|