关于 syncfusion-wpf-diagram
此技能介绍如何在 WPF 应用中使用 Syncfusion SfDiagram 构建和定制交互式图表,涵盖图表元素、自动布局、数据绑定、持久化、导出和打印。
主要功能
- 01节点、连接器、端口和注释
- 02多种图表类型的自动布局
- 03支持拖放符号的模具面板
- 04基于数据绑定生成图表
- 05XML、JSON 和流序列化
- 06图像与 PDF 导出及打印
适用场景
- 01构建流程图、组织结构图或思维导图
- 02创建 BPMN 或 UML 图表
- 03根据层级数据生成图表
- 04保存、导出或打印图表状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-diagram安装后在 Claude Code 中输入/syncfusion-wpf-diagram确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/annotations.mdautomatic-layouts.mdbpmn-shapes.mdcommands.mdconnectors.mddata-source.mddiagram-customization.mdexport-print.mdgetting-started.mdinteraction.mdnodes.mdperformance-constraints.mdports.mdserialization-undo-redo.mdstencil.mdswimlane.mduml-diagrams.md详细介绍
实现 Syncfusion WPF Diagram(SfDiagram)
Syncfusion WPF Diagram 控件(SfDiagram)是一款功能丰富的图表库,可用于在 WPF 应用程序中构建交互式流程图、组织结构图、BPMN 图、UML 图、网络图等。它提供节点、连接线、注释、端口、自动布局和丰富的自定义选项。
何时使用此技能
- 在 WPF 应用程序中创建任何可视化图表(流程图、组织结构图、思维导图等)
- 向图表添加节点、连接线、注释或端口
- 实现 BPMN 或 UML 图
- 设置自动图表布局(层次结构、组织结构图、思维导图、流程图、放射状)
- 配置用于拖放式图表构建的符号面板(模板)
- 绑定数据源以动态生成图表
- 启用图表交互(选择、拖动、调整大小、缩放、键盘快捷键)
- 导出或打印图表
- 自定义图表外观(网格线、标尺、主题、页面设置)
快速入门
1. 安装 NuGet 包
Install-Package Syncfusion.SfDiagram.WPF
2. 在 XAML 中添加命名空间
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
3. 声明 SfDiagram
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf" ...>
<Grid>
<syncfusion:SfDiagram x:Name="diagram">
<syncfusion:SfDiagram.Nodes>
<syncfusion:NodeCollection/>
</syncfusion:SfDiagram.Nodes>
<syncfusion:SfDiagram.Connectors>
<syncfusion:ConnectorCollection/>
</syncfusion:SfDiagram.Connectors>
</syncfusion:SfDiagram>
</Grid>
</Window>
4. 在代码隐藏文件中添加节点和连接线
using Syncfusion.UI.Xaml.Diagram;
// Add nodes
var node1 = new NodeViewModel { ID = "Start", UnitWidth = 120, UnitHeight = 40,
OffsetX = 200, OffsetY = 100, Shape = this.Resources["Ellipse"] };
var node2 = new NodeViewModel { ID = "End", UnitWidth = 120, UnitHeight = 40,
OffsetX = 200, OffsetY = 250, Shape = this.Resources["Rectangle"] };
(diagram.Nodes as NodeCollection).Add(node1);
(diagram.Nodes as NodeCollection).Add(node2);
// Add connector
var connector = new ConnectorViewModel { SourceNodeID = "Start", TargetNodeID = "End" };
(diagram.Connectors as ConnectorCollection).Add(connector);
文档和导航指南
入门
📄 阅读: references/getting-started.md
- 程序集部署和 NuGet 设置
- 通过 XAML 或代码添加 SfDiagram
- 注册许可证密钥
- 合并内置形状资源字典
- 创建最简流程图示例
节点
📄 阅读: references/nodes.md
- 定义和定位节点(XAML 和 C#)
- 内置形状和自定义形状模板
- 节点外观:填充、描边、阴影、工具提示
- 节点组和容器
- 节点约束(锁定、选择、调整大小、旋转)
- 节点事件
连接线
📄 阅读: references/connectors.md
- 定义节点之间的连接线
- 连接线类型:直线、正交线、三次贝塞尔曲线、圆弧、二次曲线
- 外观:线条样式、箭头、虚线
- 连接线路由和线段
- 连接线约束和交互
- 在交点处分割连接线
注释
📄 阅读: references/annotations.md
- 为节点和连接线添加文本标签
- 注释的位置和对齐方式
- 自定义外观(字体、背景、边框)
- 在运行时编辑注释
- 注释事件
端口
📄 阅读: references/ports.md
- 在节点上定义连接端口
- 端口类型和视觉外观
- 端口悬停效果
- 自动创建端口
- 创建端口到端口的连接线
交互
📄 阅读: references/interaction.md
- 选择(单选、多选、按类型选择)
- 拖放节点和连接线
- 调整大小、旋转和翻转
- 缩放和平移
- 键盘快捷键
- 工具提示和用户操作句柄
- 滚动设置、拖动限制、对齐
命令
📄 阅读: references/commands.md
- 对齐(左、右、上、下、居中)
- 剪贴板操作(剪切、复制、粘贴、重复)
- 删除节点和连接线
- 通过命令撤销/重做
- 微移(使用方向键移动)
- 旋转、翻转、适合页面
- 间距、大小、Z 顺序
- 展开/折叠节点
- 自定义命令管理器
自动布局
📄 阅读: references/automatic-layouts.md
- 层次树布局
- 组织结构图布局
- 思维导图布局
- 流程图布局
- 放射树布局
- 力导向布局
- 布局配置(间距、方向、边距)
BPMN 形状
📄 阅读: references/bpmn-shapes.md
- BPMN 活动(任务、子流程)
- BPMN 事件(开始、中间、结束)
- BPMN 网关
- BPMN 数据对象和数据存储
- BPMN 连接线和文本注释
- BPMN 组和符号面板
UML 图
📄 阅读: references/uml-diagrams.md
- UML 形状类型(类、组件、用例、活动、状态、时序)
- UML 时序图元素
- 配置 UML 形状和关系
泳道图
📄 阅读: references/swimlane.md
- 创建泳道图
- 定义泳道和阶段
- 泳道符号调色板
- 泳道交互和自定义
模具(符号调色板)
📄 阅读: references/stencil.md
- 设置拖放式符号调色板
- 符号组和类别
- 符号筛选和搜索
- 向调色板添加自定义形状
- 模具外观
数据源
📄 阅读: references/data-source.md
- 将扁平数据集合绑定到图表
- 父子数据关系
- 自引用层次数据
- 动态数据更新
序列化与撤销/重做
📄 阅读: references/serialization-undo-redo.md
- 将图表保存并加载为 XML
- 序列化为 JSON 或流,以及从 JSON 或流反序列化
- 撤销/重做历史记录管理器
- 自定义撤销/重做条目
图表自定义
📄 阅读: references/diagram-customization.md
- 网格线(可见性、样式、吸附)
- 标尺(外观、测量单位)
- 页面设置(大小、方向、边距、背景)
- 滚动设置和自动滚动
- 主题和样式
- 本地化
- 上下文菜单
- 图表功能区
- 绘图工具
- 概览控件
导出与打印
📄 阅读: references/export-print.md
- 将图表导出为 PNG、JPEG、BMP
- 导出为 PDF
- 使用打印设置打印
- 打印前预览
性能与约束
📄 阅读: references/performance-constraints.md
- 大型图表的虚拟化
- 图表级约束
- 节点和连接线约束
- 性能优化技巧
常见模式
模式:自动布局流程图
当用户希望根据数据自动排列图表时,请阅读 references/automatic-layouts.md 和 references/data-source.md。
模式:根据业务数据创建组织结构图
绑定具有父子关系的员工数据,并应用组织结构布局——请阅读 references/data-source.md 和 references/automatic-layouts.md。
模式:BPMN 流程图
用于使用标准化形状进行业务流程建模——请阅读 references/bpmn-shapes.md。
模式:交互式图表构建器
用于用户从调色板拖动形状的应用——请阅读 references/stencil.md 和 references/interaction.md。
模式:保存/加载图表状态
用于跨会话持久化图表状态——请阅读 references/serialization-undo-redo.md。