2010-02-13 62 views
5

如果我有客戶端應用程序,服務和數據庫列表,是否有一種生成架構的Visio圖表的好方法(具有相當好的佈局)?我原以爲會有一個體面的方式來生成這個動態。在.NET中動態生成Visio圖表

+0

「CSHARP」和只是簡單的錯在這裏。你一直在使用該網站足夠長的時間,你應該知道更好。 –

+0

我以爲我讀到這些通過反覆的腳本得到解決的問題 – leora

+0

我用Aspose.Diagram得到了很好的結果:http://www.aspose.com/.net/diagram-component.aspx – Adam

回答

3

在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); 

然後畫出它的一個基本的例子:「DOTNET」標籤

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

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

這是僅限於鏈接的答案的_definition_。 –

+0

正是我需要的,謝謝 – eka808