Dual-layer responsiveness: display-level adaptability combined with server-side platform detection.
Platform → UI Technology→ Clients | WebAssembly | Symbols | Drawing | Responsive | Layouts
FrameworX implements responsiveness at two distinct levels: display-level resize behavior (how content adapts within a display) and server-side responsive selection (RESS - which displays are delivered to each platform).
This dual approach enables true "build once, run everywhere" capability while optimizing for each device class.
Both dashboards and canvas displays have customizable responsiveness. They can stretch proportionately to the client area, maintaining the spatial relationship of objects, or reposition objects internally.
The configuration of this behavior is defined at the Display-Level using the OnResize property of the displays.
Responsive Design & RESS
Responsive Design + Server-Side Components (RESS) delivers optimal user experience across all devices.
The configuration of this behavior is implemented at the Layout-Level; the internal displays remain the same:
Every display—whether created with Canvas or Dashboard drawing tools—has configurable resize behavior through the
OnResize property:
OnResize Mode | Behavior | Use Case | Typical For |
---|---|---|---|
StretchUniform | Scales maintaining aspect ratio | Complex diagrams, P&IDs | Canvas (default) |
StretchFill | Fills space, may distort | Backgrounds, simple graphics | Rare |
Responsive | Elements reposition/resize individually | Data displays, forms | Dashboard (default) |
ResizeChildren | All elements scale proportionally | Maintain exact layout | Canvas alternative |
NoAction | Fixed size, may clip | Fixed-size panels | Special case |
Important: Canvas vs Dashboard is about the drawing method, not responsiveness. A Canvas display can be responsive, and a Dashboard display can use StretchUniform. The drawing tool determines how you position objects during design; OnResize determines runtime behavior.
When a Canvas display uses OnResize="Responsive", individual elements can be configured to:
Example: A sidebar that maintains fixed width while content area expands.
Dashboard displays inherently support grid-based responsiveness:
Defaults:
- Canvas displays default to StretchUniform - preserving diagram integrity
- Dashboard displays default to Responsive - adapting to screen size
RESS (Responsive + Server-Side) adds intelligence before content delivery. The server identifies the client type and sends optimized content.
Responsive Design + Server-Side Components (RESS) delivers optimal user experience across all devices:
Client Type | Detection Method | Typical Delivery |
---|---|---|
Desktop Native | WPF client signature | Full interface, all regions |
Desktop Web | Browser user agent | Full interface, web-optimized |
Tablet | Screen size + touch | Simplified menu, touch controls |
Mobile Portrait | Aspect ratio + size | Single column, essential only |
Mobile Landscape | Aspect ratio + size | Adapted layout, larger controls |
The two responsive layers complement each other:
Stage | Desktop | Mobile |
---|---|---|
1. Client connects | Identifies as WPF client | Identifies as mobile browser |
2. Server selects | Full layout with all regions | Mobile layout, header+content only |
3. Display loads | P&ID with StretchUniform | Simplified dashboard, Responsive |
4. User resizes | Maintains aspect ratio | Reflows to new orientation |
Set in Display properties during design:
Configure in Layouts:
Details in .
Scenario | Recommended Approach |
---|---|
Complex P&ID diagram | Canvas with StretchUniform, desktop-only via RESS |
KPI dashboard | Dashboard with Responsive, shared across platforms |
Data entry form | Dashboard with Responsive, simplified mobile version |
Equipment mimic | Canvas with ResizeChildren, tablet/desktop only |
Status overview | Dashboard with Responsive, all platforms |