Blazor.Diagrams
Z.Blazor.Diagrams 是一个完全可定制和可扩展的多用途 Blazor 图表库(支持服务器端和 WASM)。它最初受到流行的 React 库 react-diagrams 的启发,但后来发展成为更大规模的项目。ZBD 可用于创建具有自定义设计的高级图表。甚至库的行为也是可"破解"的,可以根据您的需求进行修改。
理念/目标
- 多用途并适用于大多数图表用例。ZBD 最初是为特定用例设计的图表库,但现在正在扩展以变得更加通用和实用。
- 性能非常重要,尤其是在 WebAssembly 中。
- 将数据层(模型)和 UI 层(小部件)分离。将图表表示为模型有很多好处,这种分离使得保存快照或修改模型变得更容易,而不受如何/在哪里渲染的影响。
- 完全可定制,无论是外观还是行为。所有 UI 都可以通过提供 Blazor 组件或使用 CSS 进行自定义。所有默认行为都可以通过替换为自定义行为来进行定制。
- 避免使用 JavaScript。ZBD 的 95% 使用 C#/Blazor 编写,仅在绝对必要时使用 JS(例如边界和观察者)。JS 互操作调用成本高昂,未来我们致力于将大多数调用批处理和/或替换。
功能
- 多用途
- 触摸支持
- 用于链接/节点的 SVG 层和用于节点的 HTML 层,实现最大程度的可定制性
- 节点、端口甚至其他链接之间的连接
- 链接路由器、路径生成器、标记和标签
- 平移、缩放和缩放以适应一组节点
- 多选、删除和区域选择
- 组作为一等公民,具有节点的所有功能
- 自定义节点、链接和组
- 可替换("可破解")的行为(例如链接拖动、模型删除等)
- 可定制的图表概览/导航器,适用于大型图表
- 对齐网格
- 虚拟化,仅绘制用户可见的节点
- 锁定机制(只读)
- 算法
入门
您可以使用以下资源快速轻松地开始:
示例项目
仓库:https://github.com/Blazor-Diagrams/Blazor.DatabaseDesigner
贡献
欢迎各种形式的贡献! 如果您有兴趣提供帮助,请创建一个问题或在现有问题上发表评论,说明您将要做什么。这是因为可能有多人在处理同一个问题。
反馈
如果您发现bug或希望在这个库中看到某项功能,请随时提出问题。