示例#1
0
        public static void DirectedGraphViaVisio()
        {
            var page1 = SampleEnvironment.Application.ActiveDocument.Pages.Add();
            var directed_graph_drawing = DirectedGraphLayoutSamples.get_dg_drawing();

            var visio_options = new DGMODEL.VisioLayoutOptions();

            directed_graph_drawing.Render(page1, visio_options);

            var padding = new VA.Drawing.Size(0.5, 0.5);

            page1.ResizeToFitContents(padding);
        }
示例#2
0
        public void Render(IVisio.Page page, DirectedGraphLayout directedGraphLayout, VisioLayoutOptions options)
        {
            // This is Visio-based render - it does NOT use MSAGL
            if (page == null)
            {
                throw new System.ArgumentNullException(nameof(page));
            }

            if (options == null)
            {
                throw new System.ArgumentNullException(nameof(options));
            }

            var    page_node = new Dom.Page();
            double x         = 0;
            double y         = 1;

            foreach (var shape in directedGraphLayout.Shapes)
            {
                var shape_nodes = page_node.Shapes.Drop(shape.MasterName, shape.StencilName, x, y);
                shape.DomNode      = shape_nodes;
                shape.DomNode.Text = new VisioAutomation.Models.Text.Element(shape.Label);
                x += 1.0;
            }

            foreach (var connector in directedGraphLayout.Connectors)
            {
                var connector_node = page_node.Shapes.Connect("Dynamic Connector", "connec_u.vss", connector.From.DomNode, connector.To.DomNode);
                connector.DomNode      = connector_node;
                connector.DomNode.Text = new VisioAutomation.Models.Text.Element(connector.Label);
            }

            page_node.ResizeToFit       = true;
            page_node.ResizeToFitMargin = new VisioAutomation.Drawing.Size(0.5, 0.5);
            if (options.Layout != null)
            {
                page_node.Layout = options.Layout;
            }
            page_node.Render(page);
        }
        public void Render(IVisio.Page page, VisioLayoutOptions options)
        {
            var vr = new VisioRenderer();

            vr.Render(page, this, options);
        }
示例#4
0
 public VisioLayoutRenderer()
 {
     this.Styling       = new DirectedGraphStyling();
     this.LayoutOptions = new VisioLayoutOptions();
 }