Skip to main content

syncfusion-blazor-diagram

Build and troubleshoot Syncfusion Blazor diagrams using SfDiagramComponent. Trigger for flowcharts, org charts, mind maps, BPMN, UML sequence, swimlanes, symbol palettes, nodes/connectors/ports/annotations, layouts, data binding, serialization (load/save), export/print, and collaborative editing questions. Provide Blazor + Syncfusion setup steps, configuration patterns, and sample snippets.

معلومات المصدر

المستودع
syncfusion/blazor-ui-components-skills
آخر نشاط في المصدر
٢٨ يوليو ٢٠٢٦ في ٠٥:٠٩
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
22 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
syncfusion-blazor-diagram
description
Build and troubleshoot Syncfusion Blazor diagrams using SfDiagramComponent. Trigger for flowcharts, org charts, mind maps, BPMN, UML sequence, swimlanes, symbol palettes, nodes/connectors/ports/annotations, layouts, data binding, serialization (load/save), export/print, and collaborative editing questions. Provide Blazor + Syncfusion setup steps, configuration patterns, and sample snippets.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Data Visualization"}
# Implementing Syncfusion Blazor Diagram A comprehensive skill for building interactive diagrams with the Syncfusion Blazor Diagram component — flowcharts, organizational charts, mind maps, BPMN process diagrams, UML sequence diagrams, network diagrams, and more. ## When to Use This Skill Use this skill when you need to: - Create flowcharts, org charts, mind maps, or network diagrams in Blazor - Work with `SfDiagramComponent`, nodes, connectors, or shapes - Configure automatic layouts (hierarchical, radial, mind map, org chart, flowchart) - Implement BPMN process diagrams with BPMN shapes - Build swimlane diagrams for process modeling - Add symbol palettes for drag-and-drop diagram building - Bind diagram data from a collection or remote source - Implement diagram interactions (selection, drag, resize, zoom, pan) - Export diagrams to PNG/JPEG/SVG or print them - Serialize and restore diagram state (save/load) - Enable collaborative real-time editing - Add UML sequence diagrams - Handle diagram events, annotations, and ports ## Important: API Verification Required **API Verification Required**: Always verify API class names, properties, and signatures by reading reference files (`references/*.md`) BEFORE generating code examples. Do not assume or infer class names. ⚠️ Before writing ANY code, review the **Common Mistakes** section directly below to avoid known invalid APIs and properties. ## Quick Start ```razor @using Syncfusion.Blazor.Diagram <SfDiagramComponent Width="100%" Height="600px" Nodes="@nodes" Connectors="@connectors" /> @code { DiagramObjectCollection<Node> nodes = new DiagramObjectCollection<Node> { new Node { ID = "node1", OffsetX = 150, OffsetY = 150, Width = 100, Height = 50, Style = new ShapeStyle { Fill = "#6BA5D7", StrokeColor = "white" }, Annotations = new DiagramObjectCollection<ShapeAnnotation> { new ShapeAnnotation { Content = "Start" } } } }; DiagramObjectCollection<Connector> connectors = new DiagramObjectCollection<Connector> { new Connector { ID = "conn1", SourceID = "node1", TargetID = "node2" } }; } ``` ## Common Patterns | Goal | Reference | |------|-----------| | First diagram setup | [references/getting-started.md](references/getting-started.md) | | Add/configure nodes | [references/nodes.md](references/nodes.md) | | Add/configure connectors | [references/connectors.md](references/connectors.md) | | Use built-in shapes | [references/shapes.md](references/shapes.md) | | Add text labels | [references/annotations.md](references/annotations.md) | | Define connection points | [references/ports.md](references/ports.md) | | Org charts / auto-layout | [references/layout.md](references/layout.md) | | Swimlane diagrams | [references/swimlane.md](references/swimlane.md) | | BPMN process diagrams | [references/bpmn.md](references/bpmn.md) | | Drag-and-drop palette | [references/symbol-palette.md](references/symbol-palette.md) | | Bind data to diagram | [references/data-binding.md](references/data-binding.md) | | Selection, drag, zoom | [references/interaction.md](references/interaction.md) | | Handle diagram events | [references/events.md](references/events.md) | | Save and load diagrams | [references/serialization.md](references/serialization.md) | | Export / print | [references/export-print.md](references/export-print.md) | | CSS / theme styling | [references/styling.md](references/styling.md) | | UML sequence diagrams | [references/uml-sequence.md](references/uml-sequence.md) | | Real-time collaboration | [references/collaborative-editing.md](references/collaborative-editing.md) | | Context menu, tooltips, rulers, localization | [references/advanced-features.md](references/advanced-features.md) | | Miniature overview / bird's-eye navigation | [references/overview-component.md](references/overview-component.md) | --- ## Documentation and Navigation Guide ### Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - NuGet package installation (`Syncfusion.Blazor.Diagram`) - Service registration and namespace imports - Setup for Blazor Server, WebAssembly, MAUI - CSS/theme configuration - Minimal working diagram example ### Nodes 📄 **Read:** [references/nodes.md](references/nodes.md) - Creating and configuring nodes - Node types: basic, flow shape, path, image, HTML, native - Node positioning, sizing, z-order - Node style (fill, stroke, opacity) - Expand/collapse children - Node events and interaction ### Connectors 📄 **Read:** [references/connectors.md](references/connectors.md) - Creating connectors between nodes or free-floating - Segment types: straight, orthogonal, bezier - Multiple segments per connector - Arrows, line style, and decoration - Connector interaction (bend, drag endpoints) - Connector events ### Shapes 📄 **Read:** [references/shapes.md](references/shapes.md) - Built-in basic shapes (rectangle, ellipse, triangle, etc.) - Flow shapes (process, decision, terminator, etc.) - Path shapes (custom SVG paths) - Image and HTML content shapes - Native SVG shapes - Choosing the right shape type ### Annotations 📄 **Read:** [references/annotations.md](references/annotations.md) - Adding text labels to nodes and connectors - Annotation positioning and alignment - Font, color, and style customization - Inline editing of annotations - Multiple annotations per element - Annotation interaction events - Interaction constraints: `AnnotationConstraints` flags, `DragLimit` (PathAnnotation) - Hyperlinks with `Hyperlink` (`Url`, `Content`, `OpenMode`) - Events: SelectionChanging/Changed, PositionChanging/Changed, SizeChanging/Changed, RotationChanging/Changed, TextChanging/Changed ### Ports 📄 **Read:** [references/ports.md](references/ports.md) - Connection ports (fixed connection points on nodes) - Dynamic ports (created at runtime) - Port positioning (relative and absolute) - Port appearance and visibility - Restricting connections to specific ports ### Layout 📄 **Read:** [references/layout.md](references/layout.md) - Automatic layout overview and when to use each type - Hierarchical tree layout (top-down, left-right) - Organizational chart layout - Mind map layout - Radial tree layout - Flowchart layout - Force-directed tree layout - Complex hierarchical layout - Layout spacing, margin, and orientation settings - Layout events and callbacks - `await DoLayoutAsync()` — refresh layout at runtime after adding/removing nodes ### Swimlane 📄 **Read:** [references/swimlane.md](references/swimlane.md) - Creating swimlane diagrams - Adding lanes and configuring lane properties - Phase configuration (vertical/horizontal phases) - Swimlane symbol palette integration - Swimlane interactions ```razor <SfDiagramComponent Height="600px" Swimlanes="@swimlanes" /> @code { DiagramObjectCollection<Swimlane> swimlanes = new(); protected override void OnInitialized() { swimlanes.Add(new Swimlane { ID = "swimlane1", OffsetX = 400, OffsetY = 300, Width = 600, Height = 200, Lanes = new DiagramObjectCollection<Lane>() { new Lane(){ Height = 100, Header = new SwimlaneHeader(){ Width = 30, Annotation = new ShapeAnnotation(){ Content = "Consumer" } }, Children = new DiagramObjectCollection<Node>() { new Node(){Height = 50, Width = 50, LaneOffsetX = 250, LaneOffsetY = 30}, } }, } }); } } ``` ### BPMN 📄 **Read:** [references/bpmn.md](references/bpmn.md) - BPMN shape types (events, activities, gateways, data) - BPMN event types (start, end, intermediate, boundary) - BPMN activity types (task, subprocess, call activity) - BPMN gateway types (exclusive, parallel, inclusive, etc.) - BPMN connectors (sequence flow, message flow, association) - Data objects and data stores - Expanded sub-process - BPMN text annotation ```razor // Exclusive gateway (XOR) nodes.Add(new Node { ID = "gateway1", OffsetX = 300, OffsetY = 200, Width = 50, Height = 50, Shape = new BpmnGateway { GatewayType = BpmnGatewayType.Exclusive } }); ``` ### Symbol Palette 📄 **Read:** [references/symbol-palette.md](references/symbol-palette.md) - Setting up `SfSymbolPaletteComponent` - Defining palette groups and symbols - Custom symbols and stencils - Drag-and-drop from palette to diagram - Palette search and customization ### Data Binding 📄 **Read:** [references/data-binding.md](references/data-binding.md) - Binding diagram from a flat list or IEnumerable - Hierarchical data binding (parent-child relationships) - Remote data source integration - Runtime CRUD: `await ReadDataAsync(query?)`, `await InsertDataAsync(data)`, `await UpdateDataAsync(keyField, data)`, `await DeleteDataAsync(keyField, value)` - `await RefreshDataSourceAsync()` — reload all data and rebuild layout - Mapping data fields to node/connector properties ### Interaction & Commands 📄 **Read:** [references/interaction.md](references/interaction.md) - Selection: `Select(collection, multipleSelection?)`, `SelectAll()`, `UnSelect(obj)`, `ClearSelection()` - Drag, resize, and rotate elements (user interaction + programmatic) - Programmatic transforms: `Drag(obj, tx, ty)`, `Rotate(obj, angle, pivot?)`, `Scale(obj, sx, sy, pivot)` - Zoom and pan: mouse wheel, toolbar, `Zoom(factor, focusPoint)`, `ResetZoom()`, `Pan(hOffset, vOffset, focusPoint?)` - `BringIntoView(DiagramRect)` — scroll viewport to show a region - `BringIntoCenter(DiagramRect)` — scroll viewport to center a region - `FitToPage(FitOptions?)` — fit content to viewport (sync; `FitMode.Width/Height/Both`, `DiagramRegion.Content/PageSettings`) - `Nudge(Direction, int?)` — move selected elements by pixels; default 1px; `Direction.Top/Bottom/Left/Right` - Z-Order: `BringToFront()`, `BringForward()`, `SendBackward()`, `SendToBack()` — must `Select()` first - Clipboard: `Copy()`, `Cut()`, `Paste(collection?)`, `Delete(collection?)` - Group/Ungroup: `Group()`, `Ungroup()`, `AddChildAsync(group, child)`, `RemoveChild(group, child)` - Inline text editing: `StartTextEdit(obj, annotationId?)` - Keyboard shortcuts (built-in table) and `CommandManager` (custom/override shortcuts via child component) - `CommandManager` uses `KeyboardCommand` + `KeyGesture` (`DiagramKeys` + `ModifierKeys`) + `CommandKeyArgs` - Snapping to grid or objects - Alignment, spacing, and sizing commands (`SetAlign`, `SetDistribute`, `SetSameSize` — all sync) - User handles (custom action buttons on selection) - Undo/redo: `Undo()`, `Redo()` (sync); `StartGroupAction()` / `EndGroupAction()` for batched undo steps - History: `AddHistoryEntry(entry)`, `ClearHistory()` - Utility: `GetObject(id)`, `GetPageBounds(x?, y?)`, `Clear()` (removes all elements) - Batch updates: `BeginUpdate()` + `await EndUpdateAsync()` — group multiple changes into one render pass - Add multiple elements: `await AddDiagramElementsAsync(DiagramObjectCollection<NodeBase>)` ### Events 📄 **Read:** [references/events.md](references/events.md) - Diagram-level events (Created, Click, Drop) - Node events (NodeCreating, PositionChanged, SizeChanged) - Connector events (ConnectionChanged, SegmentChanged) - Selection events (SelectionChanged) - History change events (HistoryChanged for undo/redo) - Event argument types and usage patterns ### Serialization 📄 **Read:** [references/serialization.md](references/serialization.md) - Saving diagram state as JSON string - Loading a diagram from saved JSON - Custom serialization properties - Partial diagram save and restore patterns ### Export & Print 📄 **Read:** [references/export-print.md](references/export-print.md) - Exporting to PNG, JPEG, SVG formats - Export region options (diagram, page, content) - Scale and margin settings - Print configuration - Custom page size and orientation - Fit diagram to single page on print ### Styling 📄 **Read:** [references/styling.md](references/styling.md) - CSS class customization (`CssClass` property) - Built-in themes (Material, Bootstrap, Fluent, Tailwind) - Node and connector style properties - Selection and hover styles - Theme Studio customization - CSS variable overrides ### UML Sequence Diagrams 📄 **Read:** [references/uml-sequence.md](references/uml-sequence.md) - UML sequence diagram setup - Lifelines and activation boxes - Message types (synchronous, asynchronous, return, create, destroy) - UML interaction shapes and connectors - `await UpdateFromModelAsync()` — refresh diagram after programmatic model changes ### UML Class Diagram 📄 **Read:** [references/uml-class-diagram.md](references/uml-class-diagram.md) - Creating Class, Interface, and Enumeration nodes with attributes, methods, and members - Visibility scopes, method parameters, separator rows - Styling header, section headers (`UmlSectionHeaderSettings`), and row-level `TextStyle` - Six relationship types: Association, Aggregation, Composition, Inheritance, Dependency, Realization - Directional / bi-directional association flow; multiplicity labels - Adding and removing members at runtime (`Add`, `RemoveAt`, `Remove`) - `CollectionChanging` / `CollectionChanged` events; inline text editing (`F2`, `StartTextEdit`) - Symbol Palette integration for drag-and-drop UML shapes ### Collaborative Editing 📄 **Read:** [references/collaborative-editing.md](references/collaborative-editing.md) - Setting up real-time collaborative diagram editing - SignalR hub configuration - Blazor Server and WASM app integration - Handling real-time sync and conflict resolution - Delta sync: `GetDiagramUpdates(HistoryChangedEventArgs)` + `await SetDiagramUpdatesAsync(updates)` — efficient change propagation ### Overview Component 📄 **Read:** [references/overview-component.md](references/overview-component.md) - Adding `SfDiagramOverviewComponent` as a miniature thumbnail panel - Linking the overview to the main diagram via `SourceID` / `ID` - Controlling panel size with `Width` and `Height` - Zoom and pan interactions (drag, resize, click, draw-region) - Enabling or disabling interactions with `DiagramOverviewConstraints` - Required `@using Syncfusion.Blazor.Diagram.Overview` namespace. ```razor @using Syncfusion.Blazor.Diagram @using Syncfusion.Blazor.Diagram.Overview
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub