
syncfusion-winforms-diagram
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.
- Installs
- 78
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-diagram- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-winforms-diagram automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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 fromScrollControlModel- Contains diagram nodes, connectors, and layersView- Renders the model and manages display propertiesController- Handles user input and tool activation
Node Classes
Node- Base class for all diagram nodesRectangle,Ellipse,Polygon,RoundRect- Basic shape nodesLine,PolyLine,Curve,Bezier,Spline- Line-based nodesTextNode,RichTextNode- Text nodesBitmapNode- Image nodesGroup- Container for grouped nodes
Connector Classes
OrthogonalConnector- 90-degree angle connectorsDirectedLinesConnector- Smart routed connectorsLineConnector- Straight line connectors
Common Methods
Model.AppendChild(node)- Add node to modelController.ActivateTool(toolName)- Activate drawing toolDiagram.UpdateView()- Refresh diagram displayNode.Labels.Add(label)- Add label to nodePort.TryConnect(endpoint)- Connect nodes via portsController.Group()- Group selected nodesModel.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
- Implementing Syncfusion Windows Forms Components - Main library navigation
- Component categories available in the main library skill
Need Help? Check the troubleshooting reference for common issues and solutions.
FAQ
What does the syncfusion-winforms-diagram skill do?
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.
How do I install syncfusion-winforms-diagram?
Run npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-diagram in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-winforms-diagram/ (personal) or .claude/skills/syncfusion-winforms-diagram/ (project).
Which AI agents can use syncfusion-winforms-diagram?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-winforms-diagram safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-winforms-diagram?
It is published by syncfusion in syncfusion/winforms-ui-components-skills. It has 78 recorded installs.
More from syncfusion/winforms-ui-components-skills
syncfusion-winforms-datagrid
syncfusion/winforms-ui-components-skills
Implements Syncfusion WinForms SfDataGrid component for displaying and managing tabular data in Windows Forms applications. Use this when working with data grids, column management (auto-generation, stacked headers), data operations (filtering, sorting, grouping), or grid editing with validation. The skill covers data summaries, selection modes, export capabilities (Excel/PDF), conditional styling, master-detail views, and drag-and-drop functionality.
syncfusion-winforms-button
syncfusion/winforms-ui-components-skills
Guide developers to implement and customize the Syncfusion Windows Forms SfButton control for desktop applications. Use this when creating interactive buttons with text, images, styling, and theming in Windows Forms applications. Covers implementation, customization, and interaction handling.
syncfusion-winforms-common
syncfusion/winforms-ui-components-skills
Comprehensive guide for implementing Syncfusion Essential Studio Windows Forms (WinForms) controls in desktop applications. Use this skill when working with Syncfusion WinForms components or Essential Studio WinForms. Covers WinForms installation, localization, high DPI support, and .NET Core compatibility. Helps with adding controls, registering license keys, and troubleshooting WinForms component issues.
syncfusion-winforms-contextmenustrip
syncfusion/winforms-ui-components-skills
Implement ContextMenuStripEx enhanced context menus in Windows Forms applications. Use this when working with context menus, right-click functionality, or popup menus with custom items. Covers menu configuration, multi-level menus, keyboard shortcuts, and appearance customization in WinForms.
syncfusion-winforms-listview
syncfusion/winforms-ui-components-skills
Guide for implementing Syncfusion SfListView control in Windows Forms for creating list-based UIs with data binding, grouping, sorting, filtering, and selection capabilities. Use when building applications with item collections, Explorer views, contact lists, or product catalogs with sortable/filterable lists. Covers data binding, checkbox lists, grouped lists, filtered lists, and rich data display for list interfaces.
syncfusion-winforms-docking-manager
syncfusion/winforms-ui-components-skills
Guide to implement Syncfusion WinForms DockingManager control for Visual Studio-style dockable windows and layouts. Use this when creating docked, floating, or tabbed windows with advanced layout management. Covers dock states, auto-hide functionality, caption customization, and serialization in WinForms applications.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.