public void MXGraphTest() { log.logStartPhase("MXGraph", "Texting Draw.io create/load/save"); folderNode rootNode = new folderNode(); rootNode.AttachSubfolders(); var dgml = new DirectedGraph(); dgml.Populate <folderNode>(rootNode, x => x, x => x.path, x => x.caption, true, false); mxGraph mxg = directedGraphToMXGraph.ConvertToMXGraph(dgml); String drawio_path = folderResults.pathFor("MXGraphTest.drawio", imbSCI.Data.enums.getWritableFileMode.overwrite, "Resaving loaded DMGL object"); String drawio_jpg = folderResults.pathFor("MXGraphTest.jpg", imbSCI.Data.enums.getWritableFileMode.overwrite, "Resaving loaded DMGL object"); Image img = mxCellRenderer.CreateImage(mxg, mxg.GetChildCells(mxg, false, false), 1.0, Color.LightGray, true, new mxRectangle(0, 0, 1000, 500)); img.Save(drawio_jpg, ImageFormat.Jpeg); var doc = new XmlDocument(); mxCodec codec = new mxCodec(); XmlNode node = codec.Encode(mxg.Model); doc.LoadXml(node.OuterXml); doc.Save(drawio_path); log.logEndPhase(); }