Layout Control
- 4 minutes to read
The LayoutControl is a container of items that arranges these items in a single row or column.
You can add LayoutGroup containers as children to the LayoutControl. A LayoutGroup container allows you to arrange its items side-by-side (either vertically or horizontally) or as tabs.
A LayoutGroup can contain other LayoutGroup objects as children, arranging their items in a different direction. This allows non-linear layouts to be created:
The greatest benefit of using the LayoutControl is that it automatically maintains a consistent layout of child controls. The controls do not overlap even, when the window is resized, controls are added or removed, or when the font settings of the controls are changed. (Controls may overlap if you manually adjust their Margin
properties).
Besides the consistent layout functionality, the LayoutControl provides access to the following features:
- Automatic alignment of controls that are embedded into the LayoutControl using LayoutItem wrappers. These controls are automatically aligned against their left edges according to their associated labels. See Aligning contents of LayoutItems to learn more.
- Use built-in size thumbs to resize child items and groups. Set LayoutControl.AllowVerticalSizing and LayoutControl.AllowHorizontalSizing attached properties to
true
to display size thumbs. - Aligning items within groups or LayoutControl. You can align an item to any edge of its parent control, center it, or stretch it. When the parent’s size is changed, the item will adjust its position accordingly. See Aligning Items within LayoutGroup and LayoutControl Objects to learn more.
- Customizing the layout in Customization Mode. In this mode, a user can modify the layout of items using drag & drop and change the alignment of controls within groups. For more information, see Customization Mode.
- Groups can be rendered as tab containers or as GroupBox objects (a container with a title).
#LayoutControl’s Elements
The LayoutControl accepts items of any type. However, the following item types are the most common:
LayoutGroup. I– A container control that displays its children side-by-side (in a single row or column) or as tabs. You can use the LayoutGroup.View property to specify the LayoutGroup‘s visual style:
Visual Style
Sample Image
The group’s children are arranged in a single column or row, according to the Layout
Group. property.Orientation In this mode, the group’s header (Layout
Group. ) and borders are visible. In addition, you can use the LayoutHeader Group. property to enable the group collapse feature.Is Collapsible The group is rendered as a container, without a border and header. Like the previous visual style, items are arranged in a single column or row, according to the Layout
Group. property.Orientation The group is rendered as a tabbed group, where immediate children are displayed as tabs. You can display multiple items within a single tab by combining them into a single Layout
Group and adding this group as a child to the tabbed group.To specify tab headers for the children, use the following properties. If a Layout
Group is a child of a tabbed group, use the group’s LayoutGroup. property. For other items, use the LayoutHeader Control. attached property.Tab Header The Layout
Control sets theIs
property for elements located within an inactive tab in a tabbed group toEnabled False
. After the previously inactive tab is selected, theIs
property value is restored.Enabled LayoutItem. –An object that displays a label for a control:
It also features the automatic alignment of the controls within and across groups. See Layout Items and Groups to learn more.
#LayoutControl - Arranging items
Using LayoutGroups
as children within a LayoutControl allows compound layouts to be implemented.
Consider the following layout of items arranged within a LayoutControl:
To create the layout displayed above, items to be arranged in the same direction are combined into the same group. Then, these groups are combined into other groups, etc. To understand how this layout is built, let’s make the borders and headers of the groups visible:
Here, the items are combined as follows:
- The LayoutControl arranges Group 1 and Group 5 vertically.
- Group 1 arranges Group 2 and a tabbed group horizontally.
- Group 2 arranges Item 1 and Group 3 vertically.
- Group 3 arranges Item 2 and Group 4 horizontally.
- Group 4 arranges two items vertically.
- The tabbed group contains two tabs (Tab 1 and Tab 2). Each tab contains specific items. For instance, Tab 1, which is a LayoutGroup, arranges Item 5 and Item 6 vertically.
- Group 5 arranges three items horizontally.
The complete XAML code for this example can be found at How to: Build a compound layout.
#Smart Paste
You can apply a smart paste to the LayoutControl. Refer to the following help topic for more information: Smart Paste.