我已經開始搞亂VS 2010中的DGML查看器(這看起來很棒)。我知道你可以從你的代碼庫創建圖表。VS 2010中的DGML查看器
是否支持從我喜歡的任何地方創建有向圖,還是純粹是代碼分析工具?我希望沿着'添加節點'之類的東西。
我已經開始搞亂VS 2010中的DGML查看器(這看起來很棒)。我知道你可以從你的代碼庫創建圖表。VS 2010中的DGML查看器
是否支持從我喜歡的任何地方創建有向圖,還是純粹是代碼分析工具?我希望沿着'添加節點'之類的東西。
您將不得不手動生成圖形。據我所知,在這個層面上沒有可視工具來修改它的結構。
如果您右鍵單擊空格,您可以選擇查看DGML,它將向您顯示源XML文件並對其進行修改。當你知道結構時,只需創建一個結構合適的XML文件,就可以從代碼中自動生成圖形。 所有你需要定義的是鏈接部分。如果你希望在圖中有一些漂亮的名字,你可以定義節點部分。
這裏舉一個例子說明如何完成它。這很可能是更有效的方法,但這一點很容易理解。
XmlWriter xmlWriter = XmlWriter.Create(outputFile, new XmlWriterSettings() { Encoding = Encoding.UTF8 });
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("DirectedGraph", "http://schemas.microsoft.com/vs/2009/dgml");
xmlWriter.WriteStartElement("Nodes");
// dump nodes
foreach (Name n in Names)
{
xmlWriter.WriteStartElement("Node");
xmlWriter.WriteAttributeString("Id", n.Id); // id is an unique identifier of the node
xmlWriter.WriteAttributeString("Label", n.Label); // label is the text on the node you see in the graph
xmlWriter.WriteEndElement();
}
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("Links");
// dump links
foreach (Link l in Links)
{
xmlWriter.WriteStartElement("Link");
xmlWriter.WriteAttributeString("Source", l.Source); // ID! of the source node
xmlWriter.WriteAttributeString("Target", l.Target); // ID of the target node
xmlWriter.WriteEndElement();
}
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
這是所有你需要做的..如果你不希望任何分組或着色..這將增加更多的代碼...
您可以找到基本的編輯任務DGML這裏:How to Edit and Customize Graph Documents