Editor Experience
Palette search, minimap, property editing, templates and accessibility
These features are what make the canvas usable on real projects: finding the component you want, keeping your bearings, editing properties without code, starting from a template, and operating the editor from the keyboard.
Table of Contents
Palette Search
The palette filters as you type, matching both component names and categories, and reports how many entries remain visible. Items added after the first render (for example by installing an extension) are picked up immediately.
palette.SearchText = "decision";
Console.WriteLine($"{palette.VisibleItemCount} component(s) match");
palette.AddItem(new PaletteItem { Name = "Acme Gauge", Category = "Acme" }); // appears at once
Minimap
The minimap draws a scaled overview of the diagram with a viewport rectangle derived from the current pan and zoom,
which keeps orientation when working on diagrams larger than the screen. It exposes its maths for hosts and tests:
CalculateWorldBounds, CalculateScale, MapWorldToMinimap and
CalculateViewportWorldRect.
Property Editing
The in-canvas property editor writes changes straight back to the component through its public setters and repaints the canvas, so there is no separate "apply" step. It understands the property kinds the framework uses:
- Colours are edited as
#AARRGGBBhex through a dedicated converter. - Multi-selection exposes shared geometry and common node properties, with apply-to-all semantics.
- Node properties declared by a component appear automatically, which is how families surface their own settings (transform mappings, chart series, LAS curves, and so on).
Templates
Twelve ready-made diagrams cover the main families — order validation and purchase approval flowcharts, an order
lifecycle state machine, ERD, DFD, ETL, BPMN, mind map, network, UML, project plan and more. Each template is a
DiagramDto with explicit wiring, so loading one produces a fully connected diagram you can edit and run:
var template = DiagramTemplates.FlowChartOrderValidation();
manager.LoadTemplate(template); // or manager.LoadFromDto(template)
Accessibility
- Keyboard navigation — Tab and Shift+Tab cycle the selection in reading order, skipping screen-space overlays such as the palette.
- Screen readers — the host control exposes an accessible name, role and description that reflect the current selection.
- High contrast — the editor detects the Windows high-contrast setting and applies the matching theme automatically, and follows changes at run time.
manager.SelectNextComponent(); // Tab / Shift+Tab support in the engine itself
manager.SelectNextComponent(reverse: true);