Мне удалось заставить его работать, используя код C#.
Но я все же думаю, что было бы легче читать, если бы можно было создавать массивы с использованием xaml вместо C# кода.
Решение состоит в том, чтобы добавить следующий код после InitializeComponent();
на главной странице.
Grid[] tileGrid = new Grid[20];
Frame[] tileOuterFrame = new Frame[20];
Frame[] tileInnerFrame = new Frame[20];
AbsoluteLayout[] tileImageAbsoluteLayout = new AbsoluteLayout[20];
Image[] tileImage = new Image[20];
for (int i = 0; i < 20; i++)
{
// <Image> tileImage
tileImage[i] = new Image()
{
Source = ImageSource.FromResource("Resources.Logo.png"),
Aspect = Aspect.Fill
};
AbsoluteLayout.SetLayoutBounds(tileImage[i], new Rectangle(0 + .3333 * (i % 4), 0 + .25 * (i / 4), 4.18, 5.24));
AbsoluteLayout.SetLayoutFlags(tileImage[i], AbsoluteLayoutFlags.All);
// <AbsoluteLayout> tileImageAbsoluteLayout
tileImageAbsoluteLayout[i] = new AbsoluteLayout();
tileImageAbsoluteLayout[i].Children.Add(tileImage[i]);
// <Frame> tileInnerFrame
tileInnerFrame[i] = new Frame()
{
BorderColor = Color.FromHex("#FFDEAD"),
CornerRadius = 7f,
HasShadow = false,
Padding = new Thickness(0),
BackgroundColor = Color.FromHex("#E57407"),
IsClippedToBounds = true
};
tileInnerFrame[i].Content = tileImageAbsoluteLayout[i];
// <Frame> tileOuterFrame
tileOuterFrame[i] = new Frame()
{
BorderColor = Color.FromHex("#777777"),
CornerRadius = 8f,
HasShadow = true,
Padding = new Thickness(2),
BackgroundColor = Color.FromHex("#777777")
};
tileOuterFrame[i].Content = tileInnerFrame[i];
// <Grid> tileGrid
tileGrid[i] = new Grid();
AbsoluteLayout.SetLayoutBounds(tileGrid[i], new Rectangle(.20 + .15 * (i % 4), .25 + .10 * (i / 4), 0.2, 0.33));
AbsoluteLayout.SetLayoutFlags(tileGrid[i], AbsoluteLayoutFlags.All);
tileGrid[i].Children.Add(tileOuterFrame[i]);
// <AbsoluteLayout> tileBoardAbsoluteLayout from xaml
tileBoardAbsoluteLayout.Children.Add(tileGrid[i]);
}