Organize displays into responsive layouts.
Reference → Modules → Displays → UI → Client Settings | Draw | Images | Layouts | List | Localization | Symbols | Themes | Units Conversion
Displays Layouts (Reference) define the application window structure and organize display regions (Header, Menu, Content, Footer) that remain consistent while navigating through different screens. the Operator UI's structural framework, organizing displays into regions that persist during navigation while the Content area changes with each page.
Layout Display Layouts provide:
Layouts ensure consistent navigation elements while the Content region changes with display navigation.
On this page: Table of Contents maxLevel 2 minLevel 2 indent 10px exclude Steps style none
The Layout configuration interface has four main areas:
....
Panels:
HTML |
---|
<table class="relative-table" style="width: 95%; border: 1px solid #ccc; border-collapse: collapse;">
<colgroup>
<col style="width: 18%;" />
<col style="width: 41%;" />
<col style="width: 41%;" />
</colgroup>
<tbody>
<tr>
<!-- (1) Layout List -->
<td rowspan="6" style="border:1px solid #ccc; vertical-align: top; padding:6px;">
<p><strong>(1) Layout List</strong></p>
<p>Search, +, ×, sort</p>
<p>Startup<br/>Dashboard<br/>Layout1<br/>Layout2<br/>...</p>
</td>
<!-- (2) Panel Configuration -->
<td colspan="2" style="border:1px solid #ccc; padding:6px;">
<p><strong>(2) Panel Configuration</strong><br/><em>Panel Regions</em></p>
<table style="width:100%; border:1px solid #ccc; border-collapse: collapse; text-align:center;">
<tr>
<td colspan="3" style="border:1px solid #ccc; background:#f4f5f7;">Header</td>
<td style="border:1px solid #ccc;">Header Edit: <strong>Stretch</strong> / Left / Center / Right</td>
</tr>
<tr>
<td rowspan="2" style="border:1px solid #ccc; background:#f4f5f7;">Menu</td>
<td style="border:1px solid #ccc; background:#f4f5f7;">Content</td>
<td style="border:1px solid #ccc; background:#f4f5f7;">Submenu</td>
<td></td>
</tr>
<tr>
<td colspan="2" style="border:1px solid #ccc; background:#f4f5f7;">Footer</td>
<td>Footer Edit: Stretch / Left / Center / <strong>Right</strong></td>
</tr>
</table>
</td>
</tr>
<!-- Spacer Row -->
<tr>
<td colspan="2" style="border:none; height:15px;"></td>
</tr>
<!-- (3) Page Assignment Table -->
<tr>
<td colspan="2" style="border:1px solid #ccc; padding:6px;">
<p><strong>(3) Page Assignment Table</strong></p>
<table style="width:100%; border:1px solid #ccc; border-collapse: collapse;">
<tr style="background:#f4f5f7;">
<th style="border:1px solid #ccc;">Region</th>
<th style="border:1px solid #ccc;">Page</th>
<th style="border:1px solid #ccc;">Mobile</th>
<th style="border:1px solid #ccc;">Tablet</th>
<th style="border:1px solid #ccc;">Description</th>
</tr>
<tr>
<td style="border:1px solid #ccc;">Header</td>
<td style="border:1px solid #ccc;">Header</td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;">Display for the Header panel</td>
</tr>
<tr>
<td style="border:1px solid #ccc;">Footer</td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;">Display for the Footer panel</td>
</tr>
<tr>
<td style="border:1px solid #ccc;">Menu</td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;">Display for the Menu panel</td>
</tr>
<tr>
<td style="border:1px solid #ccc;">Submenu</td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;">Display for the Submenu panel</td>
</tr>
<tr>
<td style="border:1px solid #ccc;">Content</td>
<td style="border:1px solid #ccc;">MainPage</td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;"></td>
<td style="border:1px solid #ccc;">Display for the Content panel</td>
</tr>
</table>
</td>
</tr>
<!-- (4) Platform Previews (merged header) -->
<tr>
<td colspan="2" style="border:1px solid #ccc; padding:6px; text-align:center; background:#f4f5f7;">
<strong>(4) Platform Previews</strong>
</td>
</tr>
<!-- Preview Rows with labeled preview areas -->
<tr>
<td style="border:1px solid #ccc; padding:10px; text-align:center; background:#fafafa;">
<strong>Desktop Web Preview</strong>
<div style="margin-top:6px; border:1px dashed #bbb; padding:10px;">Preview area</div>
</td>
<td style="border:1px solid #ccc; padding:10px; text-align:center; background:#fafafa;">
<strong>Desktop Windows WPF</strong>
<div style="margin-top:6px; border:1px dashed #bbb; padding:10px;">Preview area</div>
</td>
</tr>
<tr>
<td style="border:1px solid #ccc; padding:10px; text-align:center; background:#fafafa;">
<strong>Mobile Preview</strong>
<div style="margin-top:6px; border:1px dashed #bbb; padding:10px;">Preview area</div>
</td>
<td style="border:1px solid #ccc; padding:10px; text-align:center; background:#fafafa;">
<strong>Tablet Preview</strong>
<div style="margin-top:6px; border:1px dashed #bbb; padding:10px;">Preview area</div>
</td>
</tr>
</tbody>
</table> |
Action | Method | Result |
---|---|---|
Add Layout | Click + button | Create new layout |
Delete Layout | Select and click × | Remove selected |
Select Layout | Click layout name | Load for editing |
Search | Use search box | Filter list |
Sort | Click sort button | Reorder list |
Configure which panels are active and their behavior:
Region | Enable/Disable | Alignment Options |
---|---|---|
Header | Always enabled |
Stretch/Left/Center/Right | ||
Menu | Optional | Fixed left position |
Content |
Sub
menu
Always enabled | Auto-size center | |
Submenu | Optional | Fixed right position |
Footer | Optional |
Stretch/Left/Center/Right |
Assign pages to each active region:
Assignment Rules | Behavior |
---|---|
Page column filled | Display assigned page |
Mobile/Tablet empty | Inherit from Page column |
Mobile/Tablet with name | Platform-specific override |
Any invalid name | Hide region on that platform |
Check layout appearance across platforms:
Desktop Configuration | Mobile Result | Tablet Result |
---|---|---|
All 5 regions active | Header + Content only | Header + Menu + Content |
Complex menu | Hamburger menu | Simplified menu |
Footer with status | Hidden footer | Minimal footer |
Wide submenu | Hidden | Narrow tools panel |
Region | Purpose | Position | Dynamic |
---|---|---|---|
Header | Logo, title, main navigation | Top | No |
Menu | Primary navigation links | Left | Optional splitter |
Content | Main display area | Center | Yes |
Submenu | Secondary navigation | Right | Optional |
Footer | Copyright, links, info | Bottom | No |
Column | Target | Fallback |
---|---|---|
Page | Desktop (WPF/HTML5) | Required |
Mobile | Mobile portrait | Uses Page |
MobileLandscape | Mobile landscape | Uses Mobile |
<ac:structured-macro ac:name="tip"> ac:rich-text-body To remove a region on mobile, enter underscore (_) instead of leaving blank. Empty fields inherit from Page configuration. </ac:rich-text-body> </ac:structured-macro>
Standard Application |
---|
|
Kiosk Mode |
---|
|
Dashboard |
---|
|
Option | Behavior | Use Case |
---|---|---|
Stretch | Full width | Standard header |
Left | Align left | Logo placement |
Center | Center content | Title focus |
Right | Align right | User controls |
Test layouts before deployment:
Desktop Menu: NavigationPanel
Mobile Menu: _ (removed) or replaced
Set default at Displays → Client Settings:
Initial Execution Conditions
??? Layout: [Select Layout]
Change entire layout:
csharp
@Client.OpenLayout("AlternateLayout");
Change content only:
csharp
@Client.OpenDisplay("NewDisplay");
// Or
@Display.NewDisplay.Open();
Property | Description | Type |
---|---|---|
Region | Layout area identifier | Enum |
Docking | Attachment position | String |
Page | Desktop display | Display |
Mobile | Mobile display | Display |
MobileLandscape | Landscape display | Display |
HorizontalAlign | Alignment option | Enum |
Splitter | Resizable divider | Boolean |
Row/Column | Grid position | Integer |
RowSpan/ColumnSpan | Grid spanning | Integer |
Header: Navigation Bar
Menu: Equipment List (with splitter)
Content: Main Display (changes)
Footer: Status Bar
Header: Company Logo (center)
Content: Full Screen Display
Footer: Hidden (_)
Header: Title Only
Menu: Hidden (_)
Content: Dashboard Display
Submenu: Quick Actions
Footer: Timestamp
Desktop Menu: NavigationPanel
Mobile Menu: _ (removed)
Layout not loading:
Region not showing:
Mobile layout issues:
User Role Based
csharp
public void SetLayoutByRole()
{
string role = @Security.CurrentUser.Role;
string layout = role switch
{
"Operator" => "OperatorLayout",
"Engineer" => "EngineeringLayout",
"Manager" => "ManagerLayout",
_ => "DefaultLayout"
};
@Client.OpenLayout(layout);
}
csharp
public void SetDayNightLayout()
{
bool isNight = DateTime.Now.Hour >= 18 ||
DateTime.Now.Hour < 6;
@Client.OpenLayout(isNight ? "NightLayout" : "DayLayout");
}
Field | Purpose | Auto-Updated |
---|---|---|
ID | Unique identifier | Yes |
VersionID | Change tracking | Yes |
DateCreated | Creation audit | Yes |
DateModified | Last change | Yes |
Layout not loading:
Region not showing:
Mobile layout issues:
Page Tree | |||
---|---|---|---|
|