1

VS 2010 で DGML ビューアーをいじり始めました (これは素晴らしいようです)。コードベースからダイアグラムを作成できることは知っています。

好きなものから有向グラフを作成するためのサポートはありますか、それとも純粋にコード分析ツールですか? 「ノードの追加」か何かに沿ったものが欲しいです。

4

2 に答える 2

1

グラフを手動で生成する必要があります。私の知る限り、このレベルの構造を変更するための視覚的なツールはありません。

空白を右クリックすると、[DGML の表示] を選択してソース XML ファイルを表示し、それを変更できます。構造がわかれば、適切な構造を持つ XML ファイルを作成するだけで、コードからグラフを自動的に生成することもできます。定義する必要があるのは Links セクションだけです。グラフに見栄えの良い名前を付けたい場合は、ノード セクションを定義することもできます。

ここでは、それを実行する方法の例を示します。より効率的な方法がある可能性が最も高いですが、これは理解しやすいです。

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

これはあなたがする必要があるすべてです..グループ化や色付けが必要ない場合..もう少しコードを追加します...

于 2010-04-19T09:01:53.783 に答える
1

DGML の基本的な編集タスクについては、「グラフ ドキュメントを編集およびカスタマイズする方法」を参照してください。

于 2010-05-14T23:10:40.737 に答える