public override EvasObject CreateContent(EvasObject parent) { Box box = new ColoredBox(parent) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1, BackgroundColor = Color.Pink }; box.Show(); var card1 = CreateCard1(parent); var card2 = CreateCard2(parent); var label1 = new Label(parent) { Text = "<span font_size=35>Card 1</span>", MinimumWidth = 500, MinimumHeight = 30 }; label1.Show(); var label2 = new Label(parent) { Text = "<span font_size=35>Card 2 Layout</span>", MinimumWidth = 500, MinimumHeight = 30 }; label2.Show(); box.PackEnd(label1); box.PackEnd(card1); box.PackEnd(label2); box.PackEnd(card2); box.SetLayoutCallback(() => { var rect = box.Geometry; label1.Geometry = new Rect(rect.X + 50, rect.Y + 50, label1.MinimumWidth, label1.MinimumHeight); card1.Geometry = new Rect(rect.X + 50, rect.Y + 100, card1.MinimumWidth, card1.MinimumHeight); label2.Geometry = new Rect(rect.X + 50, card1.Geometry.Y + card1.Geometry.Height + 50, label2.MinimumWidth, label2.MinimumHeight); card2.Geometry = new Rect(rect.X + 50, card1.Geometry.Y + card1.Geometry.Height + 100, card2.MinimumWidth, card2.MinimumHeight); }); return(box); }