mxGraph编程之Winform/WPF客户端显示根据xml保存的流程图

本文介绍了如何使用mxGraph .NET库将Web端保存的XML流程图在Winform或WPF客户端应用程序中显示。通过解析XML数据,利用mxCellRenderer的CreateImage方法生成图像,并进行Base64编码存储。在客户端,从数据库检索数据,解码并显示在pictureBox上。
摘要由CSDN通过智能技术生成

最近用户对我们的软件提了一个新的需求,就是把web端做好的流程图,保存之后要能在Winform的客户端应用程序可以看到。

记得上回我给大家分享了从数据库加载xml数据显示和将xml数据保存到数据库,那么显然,我们在将xml保存到数据库之前,还需要将xml数据做一个转换,转换成图像数据,然后base64编码之后保存到数据库。

这就不得不涉及到mxgraph的一个用于dotnet的一个开发库,可以在 https://github.com/jgraph/mxgraph 上下载到,下载之后找到dotnet文件夹,打开里面的解决方案,然后编译,会生成一个dll。

这里重点讨论一下,web端和客户端数据传输的问题,虽然我们用的是mysql数据库,我们也可以获取到流程图的xml数据,但是我们如何将其转化成图像数据呢?mxGraph已经封装了一些操作,我们可以直接调用这些操作来生成图像数据

核心的类就是mxCellRenderer类,里面有一个方法叫做CreateImage,参数比较多,一一讲解:

CreateImage:

  1. graph - 你构建的mxGraph对象
  2. cells - 流程块,一般为null,因为流程块信息都在graph对象里面
  3. scale - 缩放,通常为1,即不缩放
  4. background - 生成图片的背景颜色,最好给成控件的背景色
  5. antiAlias - 抗锯齿,当然要抗锯齿了啊
  6. clip - mxRectangle对象,一般给null

那么现在很明确了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里给您提供一个简单的 Vue + mxGraph 实现流程图编辑的示例: 1. 安装 mxgraph-vue ``` npm install mxgraph-vue ``` 2. 在 Vue 组件中引入 mxgraph-vue ```vue <template> <div> <mxgraph ref="graph" v-bind:config="config" v-bind:editor-config="editorConfig"></mxgraph> </div> </template> <script> import mxgraph from 'mxgraph-vue'; export default { components: { mxgraph }, data() { return { config: { // 配置 mxGraph 的一些属性 // 可以参考 mxgraph-vue 的文档:https://github.com/jgraph/mxgraph-vue }, editorConfig: { // 配置 mxGraph 编辑器的一些属性 // 可以参考 mxgraph-vue 的文档:https://github.com/jgraph/mxgraph-vue } } }, mounted() { // 初始化 mxGraph this.$refs.graph.init(() => { // 在这里可以进行一些初始化操作 }); } } </script> ``` 3. 实现流程图的编辑功能 ```vue <template> <div> <mxgraph ref="graph" v-bind:config="config" v-bind:editor-config="editorConfig"></mxgraph> </div> </template> <script> import mxgraph from 'mxgraph-vue'; export default { components: { mxgraph }, data() { return { config: { // 配置 mxGraph 的一些属性 // 可以参考 mxgraph-vue 的文档:https://github.com/jgraph/mxgraph-vue }, editorConfig: { // 配置 mxGraph 编辑器的一些属性 // 可以参考 mxgraph-vue 的文档:https://github.com/jgraph/mxgraph-vue graphModel: { // 设置默认的节点和边的样式 defaultVertexStyle: { shape: 'rectangle', fontSize: 14, fontColor: '#000000', fillColor: '#ffffff', strokeColor: '#000000', strokeWidth: 1, rounded: true, }, defaultEdgeStyle: { shape: 'connector', fontSize: 12, fontColor: '#000000', strokeColor: '#000000', strokeWidth: 1, rounded: true, } } } } }, mounted() { // 初始化 mxGraph this.$refs.graph.init(() => { // 创建节点 const node1 = this.$refs.graph.addNode('节点1', 100, 100, 100, 50); const node2 = this.$refs.graph.addNode('节点2', 300, 100, 100, 50); const node3 = this.$refs.graph.addNode('节点3', 500, 100, 100, 50); // 创建边 this.$refs.graph.addEdge('边1', node1, node2); this.$refs.graph.addEdge('边2', node2, node3); }); } } </script> ``` 以上示例代码仅供参考,您可以根据自己的需求进行修改和扩展。希望能对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值