Displays Layouts (Reference) define the application window structure and organize display regions (Header, Menu, Content, Footer) that remain consistent while navigating through different screens.
Display Layouts provide:
- Consistent application structure
- Region-based organization
- Multi-platform support
- Dynamic content areas
- Responsive adaptations
- Runtime layout switching
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
Layout Regions
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 |
Creating Layouts
- Navigate to Displays → Layouts
- Click Add New button
- Configure:
- Name - Layout identifier
- Description - Purpose documentation
- Click OK
- Map displays to regions
Region Configuration
Mapping Displays
- Select layout in grid
- For each region row:
- Click "..." in Page column
- Select display from dialog
- Repeat for Mobile/Landscape
Platform-Specific Settings
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>
Layout Customization
Header/Footer Alignment
Option | Behavior | Use Case |
---|---|---|
Stretch | Full width | Standard header |
Left | Align left | Logo placement |
Center | Center content | Title focus |
Right | Align right | User controls |
Menu Configuration
- Optional splitter for resizing
- Adjusts to header/footer
- Can be hidden on mobile
Preview Options
Test layouts before deployment:
- Desktop Web - HTML5 preview
- Desktop Windows - WPF preview
- Mobile Portrait - Phone view
- Mobile Landscape - Tablet view
Runtime Configuration
Startup Layout
Set default at Displays → Client Settings:
Initial Execution Conditions
??? Layout: [Select Layout]
Runtime Changes
Change entire layout:
csharp
@Client.OpenLayout("AlternateLayout");
Change content only:
csharp
@Client.OpenDisplay("NewDisplay");
// Or
@Display.NewDisplay.Open();
Configuration Properties
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 |
Best Practices
- Plan Structure - Define regions before displays
- Test All Platforms - Verify on each target
- Consider Mobile - Simplify for small screens
- Use Splitters Wisely - Only where needed
- Keep Headers Simple - Essential navigation only
- Document Layouts - Explain purpose
- Version Control - Track layout changes
Common Layout Patterns
Standard Application
Header: Navigation Bar
Menu: Equipment List (with splitter)
Content: Main Display (changes)
Footer: Status Bar
Kiosk Mode
Header: Company Logo (center)
Content: Full Screen Display
Footer: Hidden (_)
Dashboard
Header: Title Only
Menu: Hidden (_)
Content: Dashboard Display
Submenu: Quick Actions
Footer: Timestamp
Mobile Considerations
Responsive Design
- Simplify navigation for touch
- Hide non-essential regions
- Optimize for portrait orientation
- Test gesture navigation
Region Removal
Desktop Menu: NavigationPanel
Mobile Menu: _ (removed)
Troubleshooting
Layout not loading:
- Verify layout exists
- Check display assignments
- Review platform compatibility
- Test startup settings
Region not showing:
- Confirm display mapped
- Check visibility settings
- Verify display engine
- Test without underscore
Mobile layout issues:
- Review mobile mappings
- Check responsive settings
- Test orientation changes
- Verify touch targets
Layout Switching Scenarios
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);
}
Time Based
csharp
public void SetDayNightLayout()
{
bool isNight = DateTime.Now.Hour >= 18 ||
DateTime.Now.Hour < 6;
@Client.OpenLayout(isNight ? "NightLayout" : "DayLayout");
}
Metadata Tracking
Field | Purpose | Auto-Updated |
---|---|---|
ID | Unique identifier | Yes |
VersionID | Change tracking | Yes |
DateCreated | Creation audit | Yes |
DateModified | Last change | Yes |
The metadata tracking pattern applies consistently across all configuration tables in the platform.
In this section...
Page Tree | ||||
---|---|---|---|---|
|