Implementing Syncfusion Windows Forms Diagram
Essential Diagram is an extensible and high-performance .NET diagramming framework for Windows Forms applications. It enables you to develop Microsoft Visio-like interactive graphics and diagramming applications with support for both vector and raster graphics.
When to Use This Skill
Use this skill when you need to:
- Create interactive diagrams - Build flowcharts, organizational charts, network diagrams, or any node-based visualizations
- Implement diagram editors - Develop Visio-like applications with drag-and-drop, symbol palettes, and drawing tools
- Connect shapes visually - Link nodes with various connector types (orthogonal, bezier, directed lines)
- Design custom diagramming tools - Create domain-specific diagram applications with custom shapes and symbols
- Build visual modeling software - Implement UML diagrams, ER diagrams, mind maps, or workflow designers
- Add diagramming capabilities - Integrate diagram controls into existing Windows Forms applications
- Manage complex layouts - Use automatic layout algorithms for hierarchical, radial, or organizational layouts
Component Overview
Essential Diagram provides a comprehensive Model-View-Controller architecture with the following components:
Core Controls:
- Diagram - Main canvas for rendering and manipulating 2D shapes, text, images, and controls
- Overview - Perspective view with dynamic pan/zoom viewport
- PaletteGroupBar/PaletteGroupView - Symbol palette management for drag-and-drop
- PropertyEditor - Property inspection and editing for diagram objects
- DocumentExplorer - Tree view of diagram objects and layers
Key Features:
- 15+ interactive drawing tools (Rectangle, Line, Bezier, Polygon, Text, etc.)
- 7+ connector types with automatic routing and line bridging
- Matrix transformations (translate, rotate, scale)
- Layers, grouping, and Z-order management
- Undo/redo, rulers, gridlines, snap-to-grid
- Event handling, data binding, context menus
- Serialization, printing, and export capabilities
- Symbol Designer and Diagram Builder utilities
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
When you need to:
- Install and configure the Diagram control
- Understand the Model-View-Controller architecture
- Create your first diagram (designer or code)
- Add basic nodes and connect them
- Set up a complete working diagram
Nodes and Shapes
📄 Read: references/nodes-and-shapes.md
When working with:
- Creating rectangles, ellipses, polygons, and other shapes
- Positioning and styling nodes (fill, border, shadow)
- Custom shapes and Symbol Designer
- Node properties and manipulation
- Bitmap nodes and composite shapes
Connectors and Links
📄 Read: references/connectors.md
When implementing:
- Line, Orthogonal, DirectedLine, PolyLine connectors
- Bezier, Spline, Curve, and Arc connectors
- Head and tail decorators (arrows, diamonds, circles)
- Automatic line routing and line bridging
- Connection points and port management
- Connector styling and customization
Drawing Tools
📄 Read: references/drawing-tools.md
When enabling:
- Interactive drawing tools (SelectTool, RectangleTool, LineTool, etc.)
- Shape tools (Ellipse, Polygon, RoundRect, Arc)
- Line drawing tools (PolyLine, Curve, Bezier, Spline, Pencil)
- Text and RichText tools
- Connection tools (LineLinkTool, OrthogonalLinkTool, etc.)
- Tool activation and configuration
Diagram Controls
📄 Read: references/diagram-controls.md
When adding:
- Overview control for pan/zoom viewport
- PaletteGroupBar for symbol palette management
- PaletteGroupView for palette display
- PropertyEditor for property inspection
- DocumentExplorer for object tree visualization
- Creating controls through designer and code
Layout and Organization
📄 Read: references/layout-organization.md
When organizing:
- Layers (creating, managing, visibility)
- Grouping and ungrouping nodes
- Alignment tools (left, center, right, top, middle, bottom)
- Z-order operations (bring forward, send backward)
- Spacing and sizing tools
- Nudge operations
Labels and Ports
📄 Read: references/labels-ports.md
When configuring:
- Adding and formatting labels on nodes
- Text styling (font, color, alignment, rotation)
- Connection ports on nodes
- Port constraints and connection rules
- Custom port positioning
- Label and port visibility
Diagram Features
📄 Read: references/features.md
When implementing:
- Dynamic properties at runtime
- Event handlers (node, connection, model events)
- Data binding to diagram objects
- Context menu customization
- Touch support for touch-enabled devices
- Measurement units (pixels, inches, millimeters)
User Interaction
📄 Read: references/user-interaction.md
When handling:
- Undo/redo functionality
- Pan and zoom tools
- Magnification control
- Selection modes and multi-select
- Copy, cut, paste operations
- Rotation and flip tools
View Controls
📄 Read: references/view-controls.md
When configuring:
- Rulers (horizontal and vertical)
- Gridlines and snap-to-grid
- Guides for alignment
- Scrolling behavior
- Zoom and pan settings
- Page borders and backgrounds
Layout Management
📄 Read: references/layout-management.md
When applying:
- Automatic layout algorithms
- Hierarchical layouts
- Organizational chart layouts
- Radial and tree layouts
- Custom layout managers
- Layout configuration and optimization
Advanced Features
📄 Read: references/advanced-features.md
When working with:
- Diagram serialization (save/load)
- Printing (page setup, print preview, headers/footers)
- Export to image formats
- Symbol Designer utility for custom symbols
- Diagram Builder utility for creating diagrams
- Custom tool development
- Performance optimization
Troubleshooting
📄 Read: references/troubleshooting.md
When encountering:
- Common issues and solutions
- Assembly dependencies and versioning
- Performance optimization tips
- Best practices and FAQ
Quick Start Example
Basic Diagram with Connected Nodes
using Syncfusion.Windows.Forms.Diagram;
using Syncfusion.Windows.Forms.Diagram.Controls;
// Create diagram control
Diagram diagram = new Diagram();
diagram.Size = new Size(800, 600);
diagram.HScroll = true;
diagram.VScroll = true;
diagram.ShowRulers = true;
// Create and attach model
Model model = new Model();
diagram.Model = model;
// Create a start node (ellipse)
Ellipse startNode = new Ellipse(100, 100, 120, 80);
startNode.FillStyle.Color = Color.LightGreen;
startNode.FillStyle.ForeColor = Color.Green;
startNode.LineStyle.LineColor = Color.DarkGreen;
startNode.LineStyle.LineWidth = 2;
Label startLabel = new Label();
startLabel.Text = "Start";
startLabel.FontColorStyle.Color = Color.Black;
startNode.Labels.Add(startLabel);
model.AppendChild(startNode);
// Create a process node (rectangle)
Syncfusion.Windows.Forms.Diagram.Rectangle processNode =
new Syncfusion.Windows.Forms.Diagram.Rectangle(300, 100, 120, 80);
processNode.FillStyle.Color = Color.LightBlue;
processNode.LineStyle.LineColor = Color.DarkBlue;
processNode.LineStyle.LineWidth = 2;
Label processLabel = new Label();
processLabel.Text = "Process";
processLabel.FontColorStyle.Color = Color.Black;
processNode.Labels.Add(processLabel);
model.AppendChild(processNode);
// Connect nodes with an orthogonal connector
OrthogonalConnector connector =
new OrthogonalConnector(startNode.PinPoint, processNode.PinPoint);
connector.LineStyle.LineColor = Color.Gray;
connector.LineStyle.LineWidth = 2;
connector.HeadDecorator.DecoratorShape = DecoratorShape.Filled45Arrow;
startNode.CentralPort.TryConnect(connector.TailEndPoint);
processNode.CentralPort.TryConnect(connector.HeadEndPoint);
model.AppendChild(connector);
// Add diagram to form
this.Controls.Add(diagram);
Common Patterns
Creating a Complete Diagram Editor
// Setup diagram with all helper controls
Diagram diagram = new Diagram();
diagram.Dock = DockStyle.Fill;
Model model = new Model();
diagram.Model = model;
// Add Overview control
OverviewControl overview = new OverviewControl();
overview.Dock = DockStyle.Left;
overview.Diagram = diagram;
// Add PaletteGroupBar for symbols
PaletteGroupBar paletteBar = new PaletteGroupBar();
paletteBar.Dock = DockStyle.Left;
paletteBar.LoadPalette("BasicShapes.edp");
paletteBar.LoadPalette("FlowchartSymbols.edp");
// Add PropertyEditor
PropertyEditor propertyEditor = new PropertyEditor();
propertyEditor.Dock = DockStyle.Right;
propertyEditor.Diagram = diagram;
// Add DocumentExplorer
DocumentExplorer docExplorer = new DocumentExplorer();
docExplorer.Dock = DockStyle.Right;
docExplorer.AttachModel(model);
// Add all to form
this.Controls.Add(diagram);
this.Controls.Add(overview);
this.Controls.Add(paletteBar);
this.Controls.Add(propertyEditor);
this.Controls.Add(docExplorer);
Activating Drawing Tools
// Activate rectangle tool for drawing rectangles
diagram.Controller.ActivateTool("RectangleTool");
// Activate line connector tool
diagram.Controller.ActivateTool("LineLinkTool");
// Activate selection tool (default)
diagram.Controller.ActivateTool("SelectTool");
// Configure tool settings
Tool tool = diagram.Controller.ActiveTool;
if (tool is LineConnectorTool lineConnector)
{
lineConnector.HeadDecorator.DecoratorShape = DecoratorShape.Filled45Arrow;
lineConnector.TailDecorator.DecoratorShape = DecoratorShape.Circle;
}
Working with Layers
// Create a new layer
Layer backgroundLayer = new Layer();
backgroundLayer.Name = "Background";
backgroundLayer.Visible = true;
backgroundLayer.Enabled = true;
model.Layers.Add(backgroundLayer);
// Add nodes to specific layer
Rectangle node = new Rectangle(50, 50, 100, 60);
backgroundLayer.AppendChild(node);
// Set active layer
model.ActiveLayer = backgroundLayer;
// Toggle layer visibility
backgroundLayer.Visible = false;
diagram.Refresh();
Applying Automatic Layout
// Create nodes
List<Node> nodes = new List<Node>();
for (int i = 0; i < 10; i++)
{
Rectangle node = new Rectangle(0, 0, 80, 50);
node.Name = "Node" + i;
model.AppendChild(node);
nodes.Add(node);
}
// Apply hierarchical layout
HierarchicalLayout layout = new HierarchicalLayout(model, model.Bounds);
layout.HorizontalSpacing = 50;
layout.VerticalSpacing = 50;
layout.Orientation = LayoutOrientation.TopToBottom;
layout.Layout();
diagram.UpdateView();
Saving and Loading Diagrams
// Save diagram to file
diagram.SaveBinary("MyDiagram.edd");
// Load diagram from file
diagram.LoadBinary("MyDiagram.edd");
diagram.Refresh();
// Save model only
model.Save("MyModel.xml");
// Load model
Model loadedModel = Model.Load("MyModel.xml");
diagram.Model = loadedModel;
Key Classes and Methods
Core Classes
Diagram - Main diagram control inheriting from ScrollControl
Model - Contains diagram nodes, connectors, and layers
View - Renders the model and manages display properties
Controller - Handles user input and tool activation
Node Classes
Node - Base class for all diagram nodes
Rectangle, Ellipse, Polygon, RoundRect - Basic shape nodes
Line, PolyLine, Curve, Bezier, Spline - Line-based nodes
TextNode, RichTextNode - Text nodes
BitmapNode - Image nodes
Group - Container for grouped nodes
Connector Classes
OrthogonalConnector - 90-degree angle connectors
DirectedLinesConnector - Smart routed connectors
LineConnector - Straight line connectors
Common Methods
Model.AppendChild(node) - Add node to model
Controller.ActivateTool(toolName) - Activate drawing tool
Diagram.UpdateView() - Refresh diagram display
Node.Labels.Add(label) - Add label to node
Port.TryConnect(endpoint) - Connect nodes via ports
Controller.Group() - Group selected nodes
Model.HistoryManager.Undo() - Undo last action
Common Use Cases
- Flowchart Designer - Create process flows with decision nodes, start/end symbols, and directional connectors
- Organizational Chart - Build hierarchical structures with automatic layout and employee nodes
- Network Diagram - Visualize network topology with servers, routers, and connection lines
- UML Editor - Design class diagrams, sequence diagrams, and use case diagrams
- Mind Map - Create radial mind maps with central ideas and branching concepts
- Workflow Designer - Design business process workflows with BPMN notation
- ER Diagram - Model database schemas with entities, attributes, and relationships
- Circuit Designer - Design electrical circuits with components and wire connections
Related Skills
Need Help? Check the troubleshooting reference for common issues and solutions.
1---2name: syncfusion-winforms-diagram3description: Implement Syncfusion Windows Forms Diagram control for creating interactive diagramming applications. Use this when creating flowcharts, organizational charts, network diagrams, or node-based visualizations. The control provides drag-and-drop editing, symbol palettes, connector management, and diagram serialization for building Visio-like applications in Windows Forms.4---56# Implementing Syncfusion Windows Forms Diagram78Essential Diagram is an extensible and high-performance .NET diagramming framework for Windows Forms applications. It enables you to develop Microsoft Visio-like interactive graphics and diagramming applications with support for both vector and raster graphics.910## When to Use This Skill1112Use this skill when you need to:1314- **Create interactive diagrams** - Build flowcharts, organizational charts, network diagrams, or any node-based visualizations15- **Implement diagram editors** - Develop Visio-like applications with drag-and-drop, symbol palettes, and drawing tools16- **Connect shapes visually** - Link nodes with various connector types (orthogonal, bezier, directed lines)17- **Design custom diagramming tools** - Create domain-specific diagram applications with custom shapes and symbols18- **Build visual modeling software** - Implement UML diagrams, ER diagrams, mind maps, or workflow designers19- **Add diagramming capabilities** - Integrate diagram controls into existing Windows Forms applications20- **Manage complex layouts** - Use automatic layout algorithms for hierarchical, radial, or organizational layouts2122## Component Overview2324Essential Diagram provides a comprehensive Model-View-Controller architecture with the following components:2526**Core Controls:**27- **Diagram** - Main canvas for rendering and manipulating 2D shapes, text, images, and controls28- **Overview** - Perspective view with dynamic pan/zoom viewport29- **PaletteGroupBar/PaletteGroupView** - Symbol palette management for drag-and-drop30- **PropertyEditor** - Property inspection and editing for diagram objects31- **DocumentExplorer** - Tree view of diagram objects and layers3233**Key Features:**34- 15+ interactive drawing tools (Rectangle, Line, Bezier, Polygon, Text, etc.)35- 7+ connector types with automatic routing and line bridging36- Matrix transformations (translate, rotate, scale)37- Layers, grouping, and Z-order management38- Undo/redo, rulers, gridlines, snap-to-grid39- Event handling, data binding, context menus40- Serialization, printing, and export capabilities41- Symbol Designer and Diagram Builder utilities4243## Documentation and Navigation Guide4445### Getting Started4647📄 **Read:** [references/getting-started.md](references/getting-started.md)4849When you need to:50- Install and configure the Diagram control51- Understand the Model-View-Controller architecture52- Create your first diagram (designer or code)53- Add basic nodes and connect them54- Set up a complete working diagram5556### Nodes and Shapes5758📄 **Read:** [references/nodes-and-shapes.md](references/nodes-and-shapes.md)5960When working with:61- Creating rectangles, ellipses, polygons, and other shapes62- Positioning and styling nodes (fill, border, shadow)63- Custom shapes and Symbol Designer64- Node properties and manipulation65- Bitmap nodes and composite shapes6667### Connectors and Links6869📄 **Read:** [references/connectors.md](references/connectors.md)7071When implementing:72- Line, Orthogonal, DirectedLine, PolyLine connectors73- Bezier, Spline, Curve, and Arc connectors74- Head and tail decorators (arrows, diamonds, circles)75- Automatic line routing and line bridging76- Connection points and port management77- Connector styling and customization7879### Drawing Tools8081📄 **Read:** [references/drawing-tools.md](references/drawing-tools.md)8283When enabling:84- Interactive drawing tools (SelectTool, RectangleTool, LineTool, etc.)85- Shape tools (Ellipse, Polygon, RoundRect, Arc)86- Line drawing tools (PolyLine, Curve, Bezier, Spline, Pencil)87- Text and RichText tools88- Connection tools (LineLinkTool, OrthogonalLinkTool, etc.)89- Tool activation and configuration9091### Diagram Controls9293📄 **Read:** [references/diagram-controls.md](references/diagram-controls.md)9495When adding:96- Overview control for pan/zoom viewport97- PaletteGroupBar for symbol palette management98- PaletteGroupView for palette display99- PropertyEditor for property inspection100- DocumentExplorer for object tree visualization101- Creating controls through designer and code102103### Layout and Organization104105📄 **Read:** [references/layout-organization.md](references/layout-organization.md)106107When organizing:108- Layers (creating, managing, visibility)109- Grouping and ungrouping nodes110- Alignment tools (left, center, right, top, middle, bottom)111- Z-order operations (bring forward, send backward)112- Spacing and sizing tools113- Nudge operations114115### Labels and Ports116117📄 **Read:** [references/labels-ports.md](references/labels-ports.md)118119When configuring:120- Adding and formatting labels on nodes121- Text styling (font, color, alignment, rotation)122- Connection ports on nodes123- Port constraints and connection rules124- Custom port positioning125- Label and port visibility126127### Diagram Features128129📄 **Read:** [references/features.md](references/features.md)130131When implementing:132- Dynamic properties at runtime133- Event handlers (node, connection, model events)134- Data binding to diagram objects135- Context menu customization136- Touch support for touch-enabled devices137- Measurement units (pixels, inches, millimeters)138139### User Interaction140141📄 **Read:** [references/user-interaction.md](references/user-interaction.md)142143When handling:144- Undo/redo functionality145- Pan and zoom tools146- Magnification control147- Selection modes and multi-select148- Copy, cut, paste operations149- Rotation and flip tools150151### View Controls152153📄 **Read:** [references/view-controls.md](references/view-controls.md)154155When configuring:156- Rulers (horizontal and vertical)157- Gridlines and snap-to-grid158- Guides for alignment159- Scrolling behavior160- Zoom and pan settings161- Page borders and backgrounds162163### Layout Management164165📄 **Read:** [references/layout-management.md](references/layout-management.md)166167When applying:168- Automatic layout algorithms169- Hierarchical layouts170- Organizational chart layouts171- Radial and tree layouts172- Custom layout managers173- Layout configuration and optimization174175### Advanced Features176177📄 **Read:** [references/advanced-features.md](references/advanced-features.md)178179When working with:180- Diagram serialization (save/load)181- Printing (page setup, print preview, headers/footers)182- Export to image formats183- Symbol Designer utility for custom symbols184- Diagram Builder utility for creating diagrams185- Custom tool development186- Performance optimization187188### Troubleshooting189190📄 **Read:** [references/troubleshooting.md](references/troubleshooting.md)191192When encountering:193- Common issues and solutions194- Assembly dependencies and versioning195- Performance optimization tips196- Best practices and FAQ197198## Quick Start Example199200### Basic Diagram with Connected Nodes201202```csharp203using Syncfusion.Windows.Forms.Diagram;204using Syncfusion.Windows.Forms.Diagram.Controls;205206// Create diagram control207Diagram diagram = new Diagram();208diagram.Size = new Size(800, 600);209diagram.HScroll = true;210diagram.VScroll = true;211diagram.ShowRulers = true;212213// Create and attach model214Model model = new Model();215diagram.Model = model;216217// Create a start node (ellipse)218Ellipse startNode = new Ellipse(100, 100, 120, 80);219startNode.FillStyle.Color = Color.LightGreen;220startNode.FillStyle.ForeColor = Color.Green;221startNode.LineStyle.LineColor = Color.DarkGreen;222startNode.LineStyle.LineWidth = 2;223224Label startLabel = new Label();225startLabel.Text = "Start";226startLabel.FontColorStyle.Color = Color.Black;227startNode.Labels.Add(startLabel);228229model.AppendChild(startNode);230231// Create a process node (rectangle)232Syncfusion.Windows.Forms.Diagram.Rectangle processNode = 233 new Syncfusion.Windows.Forms.Diagram.Rectangle(300, 100, 120, 80);234processNode.FillStyle.Color = Color.LightBlue;235processNode.LineStyle.LineColor = Color.DarkBlue;236processNode.LineStyle.LineWidth = 2;237238Label processLabel = new Label();239processLabel.Text = "Process";240processLabel.FontColorStyle.Color = Color.Black;241processNode.Labels.Add(processLabel);242243model.AppendChild(processNode);244245// Connect nodes with an orthogonal connector246OrthogonalConnector connector = 247 new OrthogonalConnector(startNode.PinPoint, processNode.PinPoint);248connector.LineStyle.LineColor = Color.Gray;249connector.LineStyle.LineWidth = 2;250connector.HeadDecorator.DecoratorShape = DecoratorShape.Filled45Arrow;251252startNode.CentralPort.TryConnect(connector.TailEndPoint);253processNode.CentralPort.TryConnect(connector.HeadEndPoint);254255model.AppendChild(connector);256257// Add diagram to form258this.Controls.Add(diagram);259```260261## Common Patterns262263### Creating a Complete Diagram Editor264265```csharp266// Setup diagram with all helper controls267Diagram diagram = new Diagram();268diagram.Dock = DockStyle.Fill;269Model model = new Model();270diagram.Model = model;271272// Add Overview control273OverviewControl overview = new OverviewControl();274overview.Dock = DockStyle.Left;275overview.Diagram = diagram;276277// Add PaletteGroupBar for symbols278PaletteGroupBar paletteBar = new PaletteGroupBar();279paletteBar.Dock = DockStyle.Left;280paletteBar.LoadPalette("BasicShapes.edp");281paletteBar.LoadPalette("FlowchartSymbols.edp");282283// Add PropertyEditor284PropertyEditor propertyEditor = new PropertyEditor();285propertyEditor.Dock = DockStyle.Right;286propertyEditor.Diagram = diagram;287288// Add DocumentExplorer289DocumentExplorer docExplorer = new DocumentExplorer();290docExplorer.Dock = DockStyle.Right;291docExplorer.AttachModel(model);292293// Add all to form294this.Controls.Add(diagram);295this.Controls.Add(overview);296this.Controls.Add(paletteBar);297this.Controls.Add(propertyEditor);298this.Controls.Add(docExplorer);299```300301### Activating Drawing Tools302303```csharp304// Activate rectangle tool for drawing rectangles305diagram.Controller.ActivateTool("RectangleTool");306307// Activate line connector tool308diagram.Controller.ActivateTool("LineLinkTool");309310// Activate selection tool (default)311diagram.Controller.ActivateTool("SelectTool");312313// Configure tool settings314Tool tool = diagram.Controller.ActiveTool;315if (tool is LineConnectorTool lineConnector)316{317 lineConnector.HeadDecorator.DecoratorShape = DecoratorShape.Filled45Arrow;318 lineConnector.TailDecorator.DecoratorShape = DecoratorShape.Circle;319}320```321322### Working with Layers323324```csharp325// Create a new layer326Layer backgroundLayer = new Layer();327backgroundLayer.Name = "Background";328backgroundLayer.Visible = true;329backgroundLayer.Enabled = true;330model.Layers.Add(backgroundLayer);331332// Add nodes to specific layer333Rectangle node = new Rectangle(50, 50, 100, 60);334backgroundLayer.AppendChild(node);335336// Set active layer337model.ActiveLayer = backgroundLayer;338339// Toggle layer visibility340backgroundLayer.Visible = false;341diagram.Refresh();342```343344### Applying Automatic Layout345346```csharp347// Create nodes348List<Node> nodes = new List<Node>();349for (int i = 0; i < 10; i++)350{351 Rectangle node = new Rectangle(0, 0, 80, 50);352 node.Name = "Node" + i;353 model.AppendChild(node);354 nodes.Add(node);355}356357// Apply hierarchical layout358HierarchicalLayout layout = new HierarchicalLayout(model, model.Bounds);359layout.HorizontalSpacing = 50;360layout.VerticalSpacing = 50;361layout.Orientation = LayoutOrientation.TopToBottom;362layout.Layout();363364diagram.UpdateView();365```366367### Saving and Loading Diagrams368369```csharp370// Save diagram to file371diagram.SaveBinary("MyDiagram.edd");372373// Load diagram from file374diagram.LoadBinary("MyDiagram.edd");375diagram.Refresh();376377// Save model only378model.Save("MyModel.xml");379380// Load model381Model loadedModel = Model.Load("MyModel.xml");382diagram.Model = loadedModel;383```384385## Key Classes and Methods386387### Core Classes388389- **`Diagram`** - Main diagram control inheriting from `ScrollControl`390- **`Model`** - Contains diagram nodes, connectors, and layers391- **`View`** - Renders the model and manages display properties392- **`Controller`** - Handles user input and tool activation393394### Node Classes395396- **`Node`** - Base class for all diagram nodes397- **`Rectangle`, `Ellipse`, `Polygon`, `RoundRect`** - Basic shape nodes398- **`Line`, `PolyLine`, `Curve`, `Bezier`, `Spline`** - Line-based nodes399- **`TextNode`, `RichTextNode`** - Text nodes400- **`BitmapNode`** - Image nodes401- **`Group`** - Container for grouped nodes402403### Connector Classes404405- **`OrthogonalConnector`** - 90-degree angle connectors406- **`DirectedLinesConnector`** - Smart routed connectors407- **`LineConnector`** - Straight line connectors408409### Common Methods410411- **`Model.AppendChild(node)`** - Add node to model412- **`Controller.ActivateTool(toolName)`** - Activate drawing tool413- **`Diagram.UpdateView()`** - Refresh diagram display414- **`Node.Labels.Add(label)`** - Add label to node415- **`Port.TryConnect(endpoint)`** - Connect nodes via ports416- **`Controller.Group()`** - Group selected nodes417- **`Model.HistoryManager.Undo()`** - Undo last action418419## Common Use Cases4204211. **Flowchart Designer** - Create process flows with decision nodes, start/end symbols, and directional connectors4222. **Organizational Chart** - Build hierarchical structures with automatic layout and employee nodes4233. **Network Diagram** - Visualize network topology with servers, routers, and connection lines4244. **UML Editor** - Design class diagrams, sequence diagrams, and use case diagrams4255. **Mind Map** - Create radial mind maps with central ideas and branching concepts4266. **Workflow Designer** - Design business process workflows with BPMN notation4277. **ER Diagram** - Model database schemas with entities, attributes, and relationships4288. **Circuit Designer** - Design electrical circuits with components and wire connections429430## Related Skills431432- [Implementing Syncfusion Windows Forms Components](../../) - Main library navigation433- Component categories available in the main library skill434435---436437**Need Help?** Check the troubleshooting reference for common issues and solutions.