EvasObject CreateCard1(Window window) { //Set Layout var card = new MCard(window) { MinimumWidth = 344.ToPixel(), MinimumHeight = 148.ToPixel(), }; var iconBox = new Box(window) { MinimumWidth = 80.ToPixel(), MinimumHeight = 80.ToPixel() }; var textBox = new Box(window) { MinimumWidth = 216.ToPixel(), MinimumHeight = 80.ToPixel() }; textBox.SetPadding(0, 10); var actionBox = new Box(window) { MinimumHeight = 36.ToPixel(), IsHorizontal = true }; actionBox.SetPadding(8, 0); card.Show(); iconBox.Show(); textBox.Show(); actionBox.Show(); card.PackEnd(iconBox); card.PackEnd(textBox); card.PackEnd(actionBox); card.SetLayoutCallback(() => { var g = card.Geometry; textBox.Geometry = new Rect( g.X + 16.ToPixel(), g.Y + 16.ToPixel(), textBox.MinimumWidth, textBox.MinimumHeight); iconBox.Geometry = new Rect( textBox.Geometry.X + textBox.Geometry.Width + 16.ToPixel(), textBox.Geometry.Y, iconBox.MinimumWidth, iconBox.MinimumHeight); actionBox.Geometry = new Rect( g.X + 8.ToPixel(), iconBox.Geometry.Y + iconBox.Geometry.Height + 8.ToPixel(), g.Width - 32.ToPixel(), actionBox.MinimumHeight); }); //Fill the contents var icon = new Image(window) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1, IsFixedAspect = false }; icon.Load(Path.Combine(MaterialGallery.ResourceDir, "image.png")); icon.Show(); iconBox.PackEnd(icon); var title = new Label(window) { Text = $"<span font_size={25.ToPixel()}>Title goes here</span>", AlignmentX = 0, AlignmentY = 0 }; var sub = new Label(window) { Text = $"<span font_size={15.ToPixel()} color=#666666>Secondary line text Lorem ipsum dolor sit amet</span>", LineWrapType = WrapType.Word, LineWrapWidth = textBox.MinimumWidth, AlignmentX = 0, AlignmentY = 0, }; title.Show(); sub.Show(); textBox.PackEnd(title); textBox.PackEnd(sub); var action1 = new MButton(window) { //ButtonStyle = MButtonStyle.TextButton, //Text = "Action 1", Text = $"<span font_size={18.ToPixel()} color=#6200ee>Action 1</span>", BackgroundColor = Color.White, AlignmentX = 0, MinimumWidth = 100.ToPixel() }; var action2 = new MButton(window) { //ButtonStyle = MButtonStyle.TextButton, //Text = "Action 2", Text = $"<span font_size={18.ToPixel()} color=#6200ee>Action 2</SPAN>", BackgroundColor = Color.White, AlignmentX = 0, MinimumWidth = 100.ToPixel() }; var empty = new Label(window) { AlignmentX = 0, WeightX = 1, }; action1.Show(); action2.Show(); empty.Show(); actionBox.PackEnd(action1); actionBox.PackEnd(action2); actionBox.PackEnd(empty); return(card); }
EvasObject CreateCard2(Window window) { var card = new MCard(window) { MinimumWidth = 344.ToPixel(), MinimumHeight = 382.ToPixel(), BorderColor = Color.Red }; card.Show(); var iconBox = new Box(window); var titleBox = new Box(window); var imgBox = new Box(window); var descBox = new Box(window); var actionBox = new Box(window) { MinimumHeight = 36.ToPixel(), IsHorizontal = true }; actionBox.SetPadding(8, 0); iconBox.BackgroundColor = Color.Gray; titleBox.BackgroundColor = Color.Aqua; imgBox.BackgroundColor = Color.Yellow; descBox.BackgroundColor = Color.Pink; actionBox.BackgroundColor = Color.Lime; card.PackEnd(iconBox); card.PackEnd(titleBox); card.PackEnd(imgBox); card.PackEnd(descBox); card.PackEnd(actionBox); card.SetLayoutCallback(() => { var g = card.Geometry; // TODO : card.Chlidren will be used for layouting foreach (var child in card.Children) { child.Show(); } iconBox.Geometry = new Rect( g.X + 16.ToPixel(), g.Y + 16.ToPixel(), 40.ToPixel(), 40.ToPixel()); titleBox.Geometry = new Rect( iconBox.Geometry.X + iconBox.Geometry.Width + 16.ToPixel(), g.Y + 16.ToPixel(), g.Width - 88.ToPixel(), 40.ToPixel()); imgBox.Geometry = new Rect( g.X, g.Y + 72.ToPixel(), g.Width, 194.ToPixel()); descBox.Geometry = new Rect( g.X + 16.ToPixel(), imgBox.Geometry.Y + imgBox.Geometry.Height + 16.ToPixel(), g.Width - 32.ToPixel(), g.Height - imgBox.Geometry.Height - 72.ToPixel() - 68.ToPixel()); actionBox.Geometry = new Rect( g.X + 16.ToPixel(), descBox.Geometry.Y + descBox.Geometry.Height + 8.ToPixel(), g.Width / 2, 36.ToPixel()); }); return(card); }