The Layout control is the page-scaffold container: it arranges its children into the classic
header / body / footer regions. Unlike Stack, which just flows children, Layout assigns
each child a role — expressed by attaching a skin to the child:
| Skin | Region |
|---|---|
Skins.Header |
Top bar, full width |
Skins.BodyContent |
The scrolling main region |
Skins.Footer |
Bottom bar, full width |
Basic Usage
Attach the region skin to each child with AddSkin and add the children with WithView:
Controls.Layout
.WithView(Controls.H4("Quarterly Report — Q2 2026").AddSkin(Skins.Header))
.WithView(Controls.Markdown(
"Revenue grew **12%** quarter-over-quarter, driven by the new subscription tier.\n\n" +
"Operating costs stayed flat, lifting the margin to **31%**.")
.AddSkin(Skins.BodyContent))
.WithView(Controls.Label("Generated by MeshWeaver · confidential").AddSkin(Skins.Footer))
Skins compose with any control — the body can be a Splitter, a Layout Grid, or a Stack of its own.
When to Reach for It
- A layout area that is a whole page (a report, a dashboard, a settings screen) and needs a persistent header/footer around scrolling content.
- Embedding an app-like region inside a node page where the chrome should travel with the area.
For ordinary in-page composition, prefer Stack — Layout earns its keep only when the
header/footer roles matter.
See Also
- Container Control — overview of all container controls
- Stack Control — simple vertical and horizontal stacking
- Splitter — resizable panes, often used as a
Layoutbody