【问题标题】:generate visio diagram on the fly with .NET使用 .NET 即时生成 visio 图
【发布时间】:2015-05-14 00:45:50
【问题描述】:

如果我有客户端应用程序、服务和数据库的列表,是否有生成架构的 visio 图的好方法(具有不错的布局)?我原以为会有一种体面的方法来即时生成它。

【问题讨论】:

  • 'csharp' 和 'dotnet' 标签在这里是完全错误的。您使用该网站的时间已经够长了,您应该知道的更多。
  • 我以为我读到这些通过重复脚本解决了正确的问题
  • 我使用 Aspose.Diagram 取得了不错的成绩:aspose.com/.net/diagram-component.aspx

标签: c# .net architecture visio


【解决方案1】:

GitHub上有VisioAutomation。如果您安装了 Visio,它可以自动生成图表。如果您可以将所需的图表建模为有向图,那么它可以自动为您布局图表(使用 MSAGL)。

这是一个创建有向图的基本示例

        using VACONNECT = VisioAutomation.Shapes.Connections;
        var d = new VisioAutomation.Models.DirectedGraph.Drawing();

        var basic_stencil = "basic_u.vss";
        var n0 = d.AddShape("n0", "Node 0", basic_stencil, "Rectangle");
        n0.Size = new VA.Drawing.Size(3, 2);
        var n1 = d.AddShape("n1", "Node 1", basic_stencil, "Rectangle");
        var n2 = d.AddShape("n2", "Node 2", basic_stencil, "Rectangle");
        var n3 = d.AddShape("n3", "Node 3", basic_stencil, "Rectangle");
        var n4 = d.AddShape("n4", "Node 4\nUnconnected", basic_stencil, "Rectangle");

        var c0 = d.AddConnection("c0", n0, n1, "0 -> 1", VACONNECT.ConnectorType.Curved);
        var c1 = d.AddConnection("c1", n1, n2, "1 -> 2", VACONNECT.ConnectorType.RightAngle);
        var c2 = d.AddConnection("c2", n1, n0, "0 -> 1", VACONNECT.ConnectorType.Curved);
        var c3 = d.AddConnection("c3", n0, n2, "0 -> 2", VACONNECT.ConnectorType.Straight);
        var c4 = d.AddConnection("c4", n2, n3, "2 -> 3", VACONNECT.ConnectorType.Curved);
        var c5 = d.AddConnection("c5", n3, n0, "3 -> 0", VACONNECT.ConnectorType.Curved);

然后画出来:

        var options = new VisioAutomation.Models.DirectedGraph.MsaglLayoutOptions();

        var page = visio_app.ActivePage;
        d.Render(page,options);

【讨论】:

  • 这是仅链接答案的定义
  • 正是我需要的,谢谢
猜你喜欢
  • 1970-01-01
  • 2015-05-28
  • 2011-10-01
  • 2010-12-18
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多