using Annulus; using Azimuth; using Prism; namespace Glass.Testbed.TestCases.Rendering { public class SolidColorTestCase : TestCase { protected override void Populate() { var swatchSize = new Vector(36, 36); var sampleSize = new Vector(168, 48); AddCaption("Solid colours"); var swatchColors = new[] { Colors.Red, Colors.Green, Colors.Blue, Colors.White, }; Rect swatchRow = ContentAggregator.NewRow(swatchSize.Y); foreach (Color swatchColor in swatchColors) { var swatch = NewChild("swatch"); swatch.Material = new SolidColorMaterial { Color = swatchColor }; swatch.Bounds = swatchRow.NewCol(swatchSize.X, margin: Margin); } AddCaption("Half alpha over a panel"); Rect dimmedRow = ContentAggregator.NewRow(sampleSize.Y); var dimmed = NewChild("dimmed"); dimmed.Material = UiPacksheetMaterials.GreenFlatPanel; dimmed.Bounds = dimmedRow.NewCol(sampleSize.X); Rect insideDimmed = Rect.FromPositionAndSize(Vector.Zero, dimmed.CanvasRect.Size); var dim = dimmed.CanvasChildren.NewChild(); dim.Material = new SolidColorMaterial { Color = Color.FromArgb(128, 0, 0, 0) }; dim.Bounds = insideDimmed.NewCol(insideDimmed.Width / 2); AddCaption("Clipped to its parent"); Rect clipperRow = ContentAggregator.NewRow(sampleSize.Y); var clipper = NewChild("clipper"); clipper.Material = UiPacksheetMaterials.GreenFlatPanel; clipper.Bounds = clipperRow.NewCol(sampleSize.X); Rect insideClipper = Rect.FromPositionAndSize(Vector.Zero, clipper.CanvasRect.Size); // Grown out of the clipper's own rect rather than guessed at, since overflowing every side is the point. var overflowing = clipper.CanvasChildren.NewChild(); overflowing.Material = new SolidColorMaterial { Color = Colors.Orange }; overflowing.Bounds = insideClipper.Expand( new Rect.BorderSize { Left = 20, Top = 20, Right = 20, Bottom = 20 }); } } }