VS 2010中的DGML查看器

时间:2010-04-14 07:54:36

标签: visual-studio-2010 graph dgml

我开始在VS 2010中使用DGML查看器(这看起来很棒)。我知道您可以从代码库中创建图表。

是否支持从我喜欢的任何地方创建有向图,或者纯粹是代码分析工具?我喜欢“添加节点”之类的东西。

2 个答案:

答案 0 :(得分:1)

您必须手动生成图表。据我所知,没有可视化工具来修改这个级别的结构。

如果右键单击空白区域,可以选择“查看DGML”,它将显示源XML文件并进行修改。当您了解结构时,您也可以通过创建具有适当结构的XML文件,从代码中自动生成图形。 您需要定义的只是链接部分。如果你希望图中有一些漂亮的名字,你也可以定义Nodes部分。

这是一个如何完成它的例子。这很可能是更有效的方法,但这个很容易理解。

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

这就是你需要做的所有......如果你不想要任何分组或着色......这会增加更多的代码...

答案 1 :(得分:1)

您可以在此处找到基本的编辑DGML任务:How to Edit and Customize Graph Documents