次の方法で共有


依存関係グラフの編集およびカスタマイズ

基になるコードに影響を与えずに依存関係グラフを編集できます。 この機能は、キー項目に重点を置く場合や、コードに関するアイデアをやり取りする場合に便利です。 たとえば、目的の領域を強調表示するために、ノードを選択してフィルター処理すること、ノードとリンクのスタイルを変更すること、ノードを非表示または削除すること、プロパティ、カテゴリ、またはグループを使用してノードを整理することができます。

グラフの Directed Graph Markup Language (.dgml) ファイルを編集すると、グラフをさらに詳細にカスタマイズできます。 たとえば、要素を編集してカスタム スタイルを指定したり、ノードとリンクにプロパティおよびカテゴリを割り当てたり、ドキュメント、URL、その他のグラフなどの項目にノードをリンクしたりすることができます。

注意

.dgml ファイルを保存すると、Visual Studio により、未使用の DGML 要素および属性が削除されクリーンアップされます。また、新しいリンクを手動で追加すると、ノード要素が自動的に作成されます。.dgml ファイルを保存すると、要素に追加した属性によって、自身がアルファベット順に並べ替えられる場合があります。DGML 要素の詳細については、「Directed Graph Markup Language (DGML) について」を参照してください。

要件

このトピックの内容

  • ノードまたはリンクを選択する

  • ノードまたはリンクの名前を変更する

  • ノードやリンクの表示と非表示を切り替える

  • ノードとリンクを追加する

  • グラフにコメントを追加する

  • ノードを削除する

  • グループ ノード

  • グラフをマージする

  • グラフのスタイルを変更する

  • ノードまたはリンクのスタイルを変更する

  • 一方のグラフから他方のグラフにスタイルをコピーする

  • ノードおよびリンクにプロパティを割り当てる

  • ノードおよびリンクにカテゴリを割り当てる

  • ノードまたはリンクに項目をリンクする

  • よく使用されるパスのエイリアスを作成する

ノードまたはリンクを選択する

目的

実行する手順

すべての選択されていないノードを選択する

選択したノードのショートカット メニューを開きます。 [選択][選択範囲の切り替え] の順にクリックします。

選択したノードにリンクしている追加のノードを選択する

選択したノードのショートカット メニューを開きます。 [選択] をクリックし、次のいずれかを実行します。

  • 選択したノードに直接リンクしている追加のノードを選択するには、[入力方向の依存関係] を選択します。

  • 選択したノードから直接リンクしている追加のノードを選択するには、[出力方向の依存関係] をクリックします。

  • 選択したノードと直接リンクしている追加のノードを選択するには、[両方] をクリックします。

  • 選択したノードとリンクしているすべてのノードをさらに選択するには、[接続しているサブグラフ] を選択します。

  • 選択したノードのすべての子ノードをさらに選択するには、[子 (複数)] を選択します。

ノードまたはリンクの名前を変更する

  • ノードまたはリンクを選択します。 F2 キーを押します。 エディット ボックスが表示されたら、ノードまたはリンクの名前を変更します。

    ラベルが表示されている場合は、ラベルを選択します。

ノードやリンクの表示と非表示を切り替える

ノードを非表示にすると、そのノードはレイアウト アルゴリズムに加わらないままになります。 既定では、グループ間リンクは非表示です。 グループ間リンクは、グループにまたがってノードを接続する個々のリンクです。 グループを折りたたむと、すべてのグループ間リンクが、グループ間の単一リンクにまとめられます。 グループを展開し、グループ内のノードを選択すると、グループ間リンクが表示されて、そのグループ内の依存関係が示されます。

注意

Visual Studio Ultimate で生成したグラフを、Visual Studio Premium または Visual Studio Professional を使用するユーザーと共有する前に、他のユーザーが表示できるようにするノードやグループ間リンクを再表示しておく必要があります。そうしない場合、これらのユーザーはそれらの項目を再表示できなくなります。

ノードの表示/非表示を切り替えるには

目的

実行する手順

選択したノードを非表示にする

  1. 非表示にするノードを選択します。

  2. 選択したノードまたはグラフのショートカット メニューを開きます。 [選択][選択範囲の非表示] の順にクリックします。

選択されていないノードを非表示にする

  1. 表示したままにしておくノードを選択します。

  2. 選択したノードまたはグラフのショートカット メニューを開きます。 [選択][選択範囲以外を非表示] の順にクリックします。

非表示のノードを表示する

  • グループ内のすべての非表示のノードを表示するには、そのグループが展開されていることを最初に確認します。 グループの左上隅にある [子の再表示] 子の再表示アイコン をクリックします。

  • 非表示のノードをすべて表示するには、グラフのショートカット メニューを開きます。 [選択範囲][すべて再表示] の順にクリックします。

.dgml ファイルを編集してノードを非表示にする

  1. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  2. <Node/> 要素に、ノードを非表示にするための次の属性を追加します。

    Visibility="Hidden"

    次のように記述します。

    <Nodes>
       <Node Id="MyNode" Visibility="Hidden"/>
    </Nodes>

リンクの表示/非表示を切り替えるには

目的

グラフ ツール バーの [グラフでのリンクの描画方法を変更します] のリストを開くか、グラフのショートカット メニューを開いて 選択するオプション

グループ間リンクを常時表示する

[すべてのグループ間リンクを表示]

これにより、グループ間の集約されたリンクは非表示になります。

選択したノードのグループ間リンクのみを表示する

[選択したノードのグループ間リンクを表示]

グループ間リンクを常時非表示にする

[すべてのグループ間リンクを非表示]

すべてのリンクを非表示にする (またはすべてのリンクを表示する)

[すべてのリンクを非表示]

すべてのリンクを表示するには、[すべてのリンクを非表示] を再度選択して、このモードをオフにします。

ノードとリンクを追加する

追加する新しい未定義のノード

実行する手順

現在のポインターの位置に追加する

新しいノードを配置するグラフ上の場所を選択します。 Ins キーを押します。

選択したノードにリンクするノードを追加する

  1. ソース ノードを選択します。

    ノードの上にツール バーが表示されます。

    依存関係のグラフ ツール バー

  2. ツール バーの [このノードと同じカテゴリの新しいノードを作成し、そのノードへのリンクを新しく追加します] グラフ ツール バー - リンク付きのノードを作成 をクリックします。

  3. 新しいノードを配置するグラフ上の場所を選択します

    (キーボード: リンク元のノードにフォーカスが置かれるまで Tab キーを押し、Alt キーを押しながら Ins キーを押します)。

現在フォーカスがある既存のノードにリンクするノードを追加する

リンク先のノードにフォーカスが置かれるまで Tab キーを押します。 Alt キーと Shift キーを押しながら Ins キーを押します。

追加するノードの対象

実行する手順

ソリューション内の項目

  1. ソリューション エクスプローラーで項目を見つけます。 ソリューション エクスプローラーの検索ボックスを使用するか、ソリューションを参照します。 ソリューション エクスプローラーでコードを参照する方法については、「コードの構造の表示」を参照してください。

    ヒント

    型またはメンバーの依存関係がある項目を見つけるには、ソリューション エクスプローラーで型またはメンバーのショートカット メニューを開きます。目的の関係を選択します。

    ソリューション エクスプローラーで、指定した依存関係のある項目のみが表示されます。

  2. 目的の項目をグラフにドラッグします。

    Visual Studio Ultimate を使用している場合に、選択した項目の親コンテナーの階層を含めるには、Ctrl キーを押しながら項目をグラフにドラッグします。

    または

    ソリューション エクスプローラーで、[Create a new graph document…] (新しいグラフ ドキュメントの作成) のリストを開きます。 [アクティブな依存関係グラフへの追加] をクリックします。 親コンテナーの階層を追加するには、代わりに [Add to Active Dependency Graph with Containment Hierarchy] (アクティブな依存関係グラフへのコンテインメント階層付きの追加) をクリックします。

    Visual Studio では、選択項目の中の最上位レベルのコード項目に対してノードが追加されます。 ノードに項目が含まれているかどうかを確認するには、シェブロン (^) が表示されるようにノードの上にマウス ポインターを移動します。 シェブロン (^) をクリックして、ノードを展開します。 すべてのノードを展開するには、グラフのショートカット メニューを開きます。 [グループ][すべて展開] の順にクリックします。

    注意

    すべてのグループを展開することで使用できないグラフやメモリの問題が発生する場合、このコマンドは使用できません。

グラフ上のノードに関連する項目

ノードのショートカット メニューを開きます。 [表示] および必要な関係の種類を選択します。

アセンブリの場合、次のように選択します。

  • 参照アセンブリ: このアセンブリの参照先のアセンブリを追加します。 外部アセンブリは [外部] グループに表示されます。

  • 参照元のアセンブリ: このアセンブリを参照するソリューション内のアセンブリを追加します。

クラスの場合、次のように選択します。

  • 基本型: クラスの場合、基底クラスおよび実装されたインターフェイスを追加します。

    インターフェイスの場合、基本インターフェイスを追加します。

  • 派生型: クラスの場合、派生クラスを追加します。

    インターフェイスの場合、派生インターフェイスと、実装するクラスまたは構造体を追加します。

  • すべての基本型: 基底クラスまたはインターフェイス階層を再帰的に追加します。

  • すべての派生型: クラスの場合、すべての派生クラスを再帰的に追加します。

    インターフェイスの場合、すべての派生インターフェイスと、実装するクラスまたは構造体を再帰的に追加します。

  • コンテインメント階層: 親コンテナーの階層を追加します。

  • 使用された型: すべてのクラスと、このクラスが使用するメンバーを追加します。

  • 使用元の型: すべてのクラスと、このクラスを使用するメンバーを追加します。

メソッドの場合、次のように選択します。

  • コンテインメント階層: 親コンテナーの階層を追加します。

  • 呼び出されたメソッド: このメソッドが呼び出すメソッドを追加します。

  • 呼び出し元のメソッド: このメソッドを呼び出すメソッドを追加します。

  • 基本型のオーバーライドされたメソッド: 他のメソッドをオーバーライドするか、インターフェイスのメソッドを実装するメソッドの場合、オーバーライドされた基底クラスのすべての抽象メソッドまたは仮想メソッド、および実装されたインターフェイスのメソッドがある場合はそのメソッドを追加します。

  • 参照されたフィールド: このメソッドが参照するフィールドを追加します。

フィールドの場合、次のように選択します。

  • コンテインメント階層: 親コンテナーの階層を追加します。

  • 参照元のメソッド: このフィールドを参照するメソッドを追加します。

コンパイルされた .NET アセンブリ (.dll または .exe) またはバイナリ

アーキテクチャ エクスプローラーを使用し、項目と関係を見つけて、グラフにドラッグします。

既存のノード間にリンクを追加するには

  1. ソース ノードを選択します。

    ノードの上にツール バーが表示されます。

    依存関係のグラフ ツール バー

  2. ツール バーの [このノードから次にクリックするノードへのリンクを新しく作成します] グラフ ツール バー - リンクの作成 をクリックします。 ターゲット ノードを選択します。

    2 つのノードの間にリンクが表示されます。

グラフにコメントを追加する

  1. リンクされたコメントを追加するノードを選択します。

    ノードの上にツール バーが表示されます。

    依存関係のグラフ ツール バー

  2. ツール バーの [新しいコメント ノードと選択したノードへの新しいリンクを作成します] グラフ ツール バー - リンク付きのコメントの作成 をクリックします。

  3. コメントを入力します。 新しい行に入力するには、Shift キーを押しながら Enter キーを押します。

ノードを削除する

基になるコードに影響を与えずにグラフからノードを削除できます。 ノードを削除するには、ノードを選択し、Del キーを押します。 ノードを削除すると、ノードの定義は、DGML (.dgml) ファイルから削除されます。

グループからノードを削除すると、[子の再フェッチ] ボタン 子の再フェッチ アイコン がグループ内に表示されます。 失われているノードを取得するには、[子の再フェッチ] 子の再フェッチ アイコン をクリックします。 DGML を編集したり、未定義のノードを追加したり、旧バージョンの Visual Studio Ultimate を使用したりして作成したグラフは、この機能をサポートしません。

注意

Visual Studio Ultimate を使用して作成したグラフを、Visual Studio Premium または Visual Studio Professional を使用するユーザーと共有する場合、他のユーザーが表示できるようにするノードは、前もってグラフに表示可能に設定しておく必要があります。そうしない場合、これらのユーザーは削除されたノードを取得できなくなります。

グループ ノード

目的

実行する手順

コンテナー ノードをグループ ノードまたはリーフ ノードとして表示する

コンテナー ノードをリーフ ノードとして表示するには、ノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][リーフに変換] の順にクリックします。

コンテナー ノードをグループ ノードとして表示するには、ノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][グループに変換] の順にクリックします。

リーフ ノードをすべてグループ ノードとして表示するには、グラフのショートカット メニューを開きます。 [グループ][グループ化] の順にクリックします。

グループ ノードをすべてリーフ ノードとして表示するには、グラフのショートカット メニューを開きます。 [グループ][グループ化の解除] の順にクリックします。

ノードをグループに追加する

ノードをグループにドラッグします。

ノードをグループ外にドラッグすることもできます。

ノードをグループ ノード以外に追加する

すべてのノードはグループに変換できます。 ノードを目的のノードにドラッグします。

選択したノードをグループ化する

  1. グループ化するノードを選択します。

    ノードの上にツール バーが表示されます。

    依存関係のグラフ ツール バー

  2. ツール バーの [選択したノードをグループ化します] グラフ ツール バー - 選択したグループ をクリックします。

    または

    選択した対象のショートカット メニューを開きます。 [グループ][親グループの追加] の順にクリックします。

  3. 新しいグループのショートカット メニューを開きます。 [プロパティ] をクリックします。 [ラベル] プロパティで、グループの名前を変更します。

特定のカテゴリまたは特定のプロパティを持つノードをグループ化する

  1. [アーキテクチャ] メニューの [ウィンドウ] をクリックし、[アーキテクチャ エクスプローラー] をクリックします。

  2. アーキテクチャ エクスプローラーを使用して、グループ化するすべてのノードを検索し、選択します。

    アーキテクチャ エクスプローラーを使用したコードの検索」を参照してください。

  3. 現在の列の右側で、折りたたまれたアクション列を選択して展開します (キーボード: Tab キーを押してフォーカスを移動し、折りたたまれたアクション列が展開されるようにします)。

    注意

    アクション列の上にポインターを移動するかフォーカスを移動すると、そのアクション列が強調表示されます。

  4. アクション列で、[含まれる] をクリックします。(キーボード: Tab キーを押してフォーカスを移動し、方向キーを使用して、関係として [含まれる] が選択されるようにします)。

  5. 次の列から、コンテナー グループをグラフにドラッグします。

  6. グラフのショートカット メニューを開きます。 [グループ][グループ化] の順にクリックします。

プロパティ値に基づいてノードをグループ化する

  1. グラフを .dgml ファイルとしてディスクに保存します。

  2. [アーキテクチャ] メニューの [ウィンドウ] をクリックし、[アーキテクチャ エクスプローラー] をクリックします。

  3. アーキテクチャ エクスプローラー[ファイル システム][ファイルの選択] をクリックします。

  4. 次の列で、保存した .dgml ファイルを選択します。

  5. アーキテクチャ エクスプローラーを使用して、グループ化するすべてのノードを検索し、選択します。

    アーキテクチャ エクスプローラーを使用したコードの検索」を参照してください。

  6. 現在の列の右側で、折りたたまれたアクション列を選択して展開します (キーボード: Tab キーを押してフォーカスを移動し、折りたたまれたアクション列が展開されるようにします)。

    注意

    アクション列の上にポインターを移動すると、強調表示されます。

  7. アクション列で、[グループ化][プロパティでグループ化] をクリックします (キーボード: Tab キーを押してフォーカスを移動し、方向キーを使用して、[プロパティでグループ化] が選択されるようにします)。

  8. 次の列で、グループとして使用するプロパティを選択します。

    次の列が表示され、使用できるプロパティ値が表示されます。

  9. 次の列から、プロパティ値グループをグラフにドラッグします。

  10. グラフのショートカット メニューを開きます。 [グループ][グループ化] の順にクリックします。

グループを削除する

削除する対象の 1 つまたは複数のグループを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][グループの削除] の順にクリックします。

親グループから祖父母グループにノードを移動する (祖父母グループがない場合は、グループの外部にノードを移動する)

移動するノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][親から削除] の順にクリックします。

グラフの .dgml ファイルを編集してノードをグループ化するには

  1. ノードをグループに変換するには、ノードのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。

    または

    新しいグループを追加するには、次の操作を実行します。

    1. グラフの空白領域のショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    2. <Nodes> セクションに、新たに <Node/> 要素を追加します。

  2. <Node/> 要素に、Group 属性を追加して、グループを展開した状態で表示するか、折りたたんだ状態で表示するかを指定します。 次のように記述します。

    <Nodes>
       <Node Id="MyFirstGroup" Group="Expanded" />
       <Node Id="MySecondGroup" Group="Collapsed" />
    </Nodes>
    
  3. <Links> セクションで、グループ ノードとその子ノードとの間の関係ごとに、次の属性を持つ <Link/> 要素が存在していることを確認します。

    • グループ ノードを指定する Source 属性

    • 子ノードを指定する Target 属性

    • グループ ノードとその子ノードとの間の Contains 関係を指定する Category 属性

    次のように記述します。

    <Links>
       <Link Category="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildOne" />
       <Link Category ="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildTwo" />
       <Link Category ="Contains" Source="MySecondNewGroup" Target="SecondGroupChildOne" />
       <Link Category="Contains" Source="MySecondNewGroup" Target="SecondGroupChildTwo" />
    </Links>
    

    Category 属性の詳細については、「ノードおよびリンクにカテゴリを割り当てる」を参照してください。

グラフをマージする

グラフ間でノードをコピーして貼り付けることにより、グラフをマージできます。 ノードの識別子が一致する場合、ノードの貼り付けはマージ操作と同様に機能します。 このタスクを簡単にするためには、視覚化するすべてのアセンブリとバイナリを同じフォルダー内に配置することで、各アセンブリまたはバイナリの完全パスが、マージする各グラフに対して同じになるようにします。

または、次の手順のいずれかを実行して、視覚化するアセンブリまたはバイナリに対して単一のグラフを作成することもできます。

  • アセンブリまたはバイナリを同じグラフにドラッグします。

    または

  • アーキテクチャ エクスプローラーを開きます。 [ファイル システム] で、[ファイルの選択] をクリックして、アセンブリまたはバイナリを参照、選択し、開きます。 グラフを調整するには、視覚化する特定の項目を選択します。 終了したら、アーキテクチャ エクスプローラーのツール バーの [選択したすべてのノードから、新しいグラフ ドキュメントを作成します] をクリックします。

グラフのスタイルを変更する

グラフの .dgml ファイルを編集することで、グラフの背景色および境界線の色を変更できます。 ノードおよびリンクのスタイルを変更する方法については、「ノードおよびリンクのスタイルを変更する」を参照してください。

  1. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  2. <DirectedGraph> 要素に次の任意の属性を追加して、グラフのスタイルを変更します。

    変更対象

    追加する属性

    背景色

    Background="ColorNameOrHexadecimalValue"

    境界線の色

    Stroke="StrokeValue"

    次のように記述します。

    <DirectedGraph Background="Green" xmlns="https://schemas.microsoft.com/vs/2009/dgml" >
       ...
       ...
    </DirectedGraph>
    

ノードおよびリンクのスタイルを変更する

ノードのアイコン、およびノードとリンクの色を変更できます。 定義済みの色およびアイコンを使用することも、グラフの .dgml ファイルを編集してカスタム カラーおよびカスタム アイコンを指定することもできます。 「ノードおよびリンクにカスタム スタイルを適用する」を参照してください。

たとえば、色を選択することで、特定のカテゴリまたは特定のプロパティを持つノードおよびリンクを強調して表示できます。 これにより、グラフの特定の領域を特定し、目立たせることができます。

特定のカテゴリまたは特定のプロパティを持つノードに定義済みの色またはアイコンを適用するには

  1. [凡例] ボックスが表示されていない場合は、グラフのショートカット メニューを開きます。 [凡例を表示する] をクリックします。

  2. [凡例] ボックスで、ノードのカテゴリまたはプロパティがリストに表示されているかどうかを確認します。

  3. リストにカテゴリまたはプロパティが含まれていない場合は、[凡例] ボックスの [+] をクリックし、[ノード カテゴリ] または [ノード プロパティ] をポイントして、カテゴリまたはプロパティをクリックします。

    カテゴリまたはプロパティが [凡例] ボックスに表示されます。

    注意

    カテゴリを作成してノードに割り当てる方法については、「ノードおよびリンクにカテゴリを割り当てる」を参照してください。プロパティを作成してノードに割り当てる方法については、「ノードおよびリンクにプロパティを割り当てる」を参照してください。

  4. [凡例] ボックスで、カテゴリまたはプロパティの横のドロップダウン リストを開きます。

  5. 次の表を使用して、変更するスタイルを選択します。

    変更対象

    Choose

    背景色

    背景

    外枠の色

    ストローク

    テキストの色

    前景

    アイコン

    アイコン

    色 (またはアイコン) を選択できるように [カラー セット ピッカー] ボックスが表示されます。

  6. [カラー セット ピッカー] ボックスで、次のいずれかの手順を実行します。

    適用対象

    実行する手順

    色 (またはアイコン) のセット

    [カラー設定の選択] (または [アイコン セットの選択]) のリストを開きます。 色 (またはアイコン) のセットを選択します。

    既定の色 (またはアイコン) に戻すには、[カラー設定の選択] (または [アイコン セットの選択]) のリストで、[なし] をクリックします。

    特定の色 (またはアイコン)

    カテゴリまたはプロパティ値のリストを開きます。 色 (またはアイコン) を選択します。

    注意

    [凡例] ボックス内のスタイルを再整列、削除、または一時的に無効化できます。「[凡例] ボックスを変更する」を参照してください。

特定のカテゴリまたは特定のプロパティを持つリンクに定義済みの色を適用するには

  1. [凡例] ボックスが表示されていない場合は、グラフのショートカット メニューを開きます。 [凡例を表示する] をクリックします。

  2. [凡例] ボックスで、カテゴリまたはプロパティがリストに表示されているかどうかを確認します。

  3. リストにカテゴリまたはプロパティが含まれていない場合は、[凡例] ボックスの [+] をクリックし、[リンク カテゴリ] または [リンク プロパティ] をポイントして、カテゴリまたはプロパティをクリックします。

    カテゴリまたはプロパティが [凡例] ボックスに表示されます。

    注意

    カテゴリを作成してリンクに割り当てる方法については、「ノードおよびリンクにカテゴリを割り当てる」を参照してください。プロパティを作成してリンクに割り当てる方法については、「ノードおよびリンクにプロパティを割り当てる」を参照してください。

  4. [凡例] ボックスで、カテゴリまたはプロパティの横のリストを開きます。

  5. [ストローク] をクリックして、リンクのアウトラインと矢じりの色を変更します。

    色を選択できるように [カラー セット ピッカー] ボックスが表示されます。

  6. [カラー セット ピッカー] ボックスで、次のいずれかのオプションを実行します。

    適用対象

    実行する手順

    色のセット

    [カラー設定の選択] のリストを開きます。 色のセットを選択します。

    既定の色に戻すには、[カラー設定の選択] のリストで、[なし] をクリックします。

    特定の色

    種類またはプロパティ値のリストを開いて、色を選択します。

    注意

    [凡例] ボックス内のスタイルを再整列、削除、または一時的に無効化できます。「[凡例] ボックスを変更する」を参照してください。

ノードおよびリンクにカスタム スタイルを適用する

次のアイテムにカスタム スタイルを適用できます。

  • 単一のノードおよびリンク

  • ノードのグループおよびリンクのグループ

  • 特定の条件に基づくノードのグループおよびリンクのグループ

単一のノードにカスタム スタイルを適用するには

  1. スタイルをカスタマイズするノードのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。

  2. <Node/> 要素に次の属性を追加して、スタイルをカスタマイズします。

    変更対象

    追加する属性

    背景色

    Background="ColorNameOrHexadecimalValue"

    外枠

    Stroke="ColorNameOrHexadecimalValue"

    外枠の太さ

    StrokeThickness="StrokeValue"

    テキストの色

    Foreground="ColorNameOrHexadecimalValue"

    アイコン

    Icon="IconFilePathLocation"

    テキストのサイズ

    FontSize="FontSizeValue"

    テキストの種類

    FontFamily="FontFamilyName"

    テキストの太さ

    FontWeight="FontWeightValue"

    テキストのスタイル

    FontStyle="FontStyleName"

    たとえば、テキストのスタイルとして Italic を指定できます。

    テクスチャ

    Style="Glass"

    または

    Style="Plain"

    形式

    シェイプをアイコンに置き換えるには、Shape プロパティを None に設定し、Icon プロパティをアイコン ファイルがあるパスに設定します。

    Shape="ShapeFilePathLocation"

    次のように記述します。

    <Nodes>
       <Node Id="MyNode" Background="#FF008000" Stroke="#FF000000"
       Foreground="#FFFFFFFF" Icon="...\Icons\Globe.png"/>
    </Nodes>
    

単一のリンクにカスタム スタイルを適用するには

  1. グラフ上で、マウス ポインターをリンクの上に移動します。 リンクのソース ノードとターゲット ノードを識別するツールヒントが表示されます (キーボード: リンクにフォーカスが置かれるまで Tab キーを押します)。

  2. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  3. リンク元ノードとリンク先ノードの両方の名前を含む <Link/> 要素を探します。

  4. <Link/> 要素に次の属性を追加して、スタイルをカスタマイズします。

    変更対象

    追加する属性

    外枠と矢じりの色

    Stroke="ColorNameOrHexadecimalValue"

    外枠の太さ

    StrokeThickness="StrokeValue"

    外枠のスタイル

    StrokeDashArray="StrokeArrayValues"

    次のように記述します。

    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" Background="Green" Stroke="#FF000000" StrokeDashArray="2,2"/>
    </Links>
    

ノードのグループまたはリンクのグループにカスタム スタイルを適用するには

  1. ノードまたはリンクに、目的のカテゴリまたはプロパティを割り当てます。

    ヒント

    多くのノードまたはリンクにわたって繰り返すスタイルがある場合は、これらのノードまたはリンクにカテゴリを適用し、そのカテゴリにスタイルを適用することを検討します。詳細については、「ノードおよびリンクにカテゴリを割り当てる」および「ノードおよびリンクにプロパティを割り当てる」を参照してください。

  2. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  3. <Styles></Styles> 要素が存在しない場合、<Links></Links> 要素の後の <DirectedGraph></DirectedGraph> 要素の下位に、この要素を追加します。

  4. <Styles></Styles> 要素で、<Style/> 要素の下位に次の属性を指定します。

    • TargetType="Node | Link | Graph"

    • GroupLabel="NameInLegendBox"

    • ValueLabel="NameInStylePickerBox"

    全種類の対象にカスタム スタイルを適用する場合、条件は使用しません。

ノードのグループまたはリンクのグループに条件付きスタイルを適用するには

  1. <Style/> 要素に、Expression 属性を含む <Condition/> 要素を追加して、ブール値を返す式を指定します。

    次のように記述します。

    <Condition Expression="MyCategory"/>
    

    または

    <Condition Expression="MyCategory > 100"/>
    

    または

    <Condition Expression="HasCategory('MyCategory')"/>
    

    この式では、次のバッカス・ナウア記法 (BNF: Backus-Naur Form) 構文を使用します。

    <Expression> ::= <BinaryExpression> | <UnaryExpression> | "("<Expression>")" | <MemberBindings> | <Literal> | <Number>

    <BinaryExpression> ::= <Expression> <Operator> <Expression>

    <UnaryExpression> ::= "!"<Expression> | "+" <Expression> | "-" <Expression>

    <Operator> ::= "<" | "<=" | "=" | ">=" | ">" | "!=" | "or" | "and" | "+" | "*" | "/" | "-"

    <MemberBindings> ::= <MemberBindings> | <MemberBinding> "."<MemberBinding>

    <MemberBinding> ::= <MethodCall> | <PropertyGet>

    <MethodCall> ::= <Identifier> "(" <MethodArgs> ")"

    <PropertyGet> ::= Identifier

    <MethodArgs> ::= <Expression> | <Expression> "," <MethodArgs> | <empty>

    <Identifier> ::= [^.]*

    <Literal> ::= 一重引用符または二重引用符で囲んだリテラル文字列

    <Number> ::= 数字の文字列 (小数点も可)

    複数の <Condition/> 要素を指定できます。スタイルを適用するには、それらがすべて true である必要があります。

  2. <Condition/> 要素の後の次の行に、1 つ以上の <Setter/> 要素を追加して、条件を満たすグラフ、ノード、またはリンクに適用する Property 属性と、固定の Value 属性または計算される Expression 属性を指定します。

    次のように記述します。

    <Setter Property="BackGround" Value="Green"/>
    

以下に簡単な完成例を示します。この例の条件では、ノードの Passed カテゴリが True に設定されているか、または False に設定されているかに基づいて、ノードが緑色または赤色で表示されます。

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
   <Nodes>
      <Node Id="MyFirstNode" Passed="True" />
      <Node Id="MySecondNode" Passed="False" />
   </Nodes>
   <Links>
   </Links>
   <Styles>
      <Style TargetType="Node" GroupLabel="Passed" ValueLabel="True">
         <Condition Expression="Passed='True'"/>
         <Setter Property="Background" Value="Green"/>
      </Style>
      <Style TargetType="Node" GroupLabel="Passed" ValueLabel="False">
         <Condition Expression="Passed='False'"/>
         <Setter Property="Background" Value="Red"/>
      </Style>
   </Styles>
</DirectedGraph>

次の表に、実際に使用できる条件例をいくつか示します。

目的

DGML の例

コード行数の関数に従ってフォント サイズを設定し、ノードのサイズも変更する。 この例では、単一の条件式を使用して、複数のプロパティ (FontSize および FontFamily) を設定しています。

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
   <Node Id="Class1" LinesOfCode ="200" />
   <Node Id="Class2" LinesOfCode ="1000" />
   <Node Id="Class3" LinesOfCode ="20" />
</Nodes>
<Properties>
   <Property Id="LinesOfCode" Label="LinesOfCode" Description="LinesOfCode" DataType="System.Int32" />
</Properties>
<Styles>
   <Style TargetType="Node" GroupLabel="LinesOfCode" ValueLabel="Function">
      <Condition Expression="LinesOfCode &gt; 0" />
      <Setter Property="FontSize" Expression="Math.Max(9,Math.Sqrt(LinesOfCode))" />
      <Setter Property="FontFamily" Value="Papyrus" />
   </Style>
</Styles>
</DirectedGraph>

Coverage プロパティに基づいて、ノードの背景色を設定する。 スタイルは、if-else ステートメントと同様に、出現する順番で評価されます。

この例では、次のように記述されています。

  1. Coverage> 80 の場合、Background プロパティを緑色に設定します。

  2. Coverage> 50 の場合、Coverage プロパティの値に基づいて、Background プロパティをオレンジ色の網かけに設定します。

  3. それ以外の場合、Coverage プロパティの値に基づいて、Background プロパティを赤色の網かけに設定します。

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
   <Node Id="Class1" Coverage="58" />
   <Node Id="Class2" Coverage="95" />
   <Node Id="Class3" Coverage="32" />
</Nodes>
<Properties>
   <Property Id="Coverage" Label="Coverage" Description="Code coverage as a percentage of blocks" DataType="Double" />
</Properties>
<Styles>
   <Style TargetType="Node" GroupLabel="Coverage" ValueLabel="Good">
      <Condition Expression="Coverage &gt; 80" />
      <Setter Property="Background" Value="Green" />
   </Style>
   <Style TargetType="Node" GroupLabel="Coverage" ValueLabel="OK">
      <Condition Expression="Coverage &gt; 50" />
      <Setter Property="Background" Expression="Color.FromRgb(180 * Math.Max(1, (80 - Coverage) / 30), 180, 0)" />
   </Style>
   <Style TargetType="Node" GroupLabel="Coverage" ValueLabel="Bad">
      <Setter Property="Background" Expression="Color.FromRgb(180, 180 * Coverage / 50, 0)" />
   </Style>
</Styles>
</DirectedGraph>

Shape プロパティを None に設定して、図形をアイコンで置き換える。 Icon プロパティを使用して、アイコンの場所を指定します。

<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
   <Node Id="Automation" Category="Test" Label="Automation" />
   <Node Id="C# Provider" Category="Provider" Label="C# Provider" />
</Nodes>
<Categories>
   <Category Id="Provider" Icon="...\Icons\Module.png" Shape="None" />
   <Category Id="Test" Icon="...\Icons\Page.png" Shape="None" />
</Categories>
<Properties>
   <Property Id="Icon" DataType="System.String" />
   <Property Id="Label" Label="Label" Description="Displayable label of an Annotatable object" DataType="System.String" />
   <Property Id="Shape" DataType="System.String" />
</Properties>
<Styles>
   <Style TargetType="Node" GroupLabel="Group" ValueLabel="Has category">
      <Condition Expression="HasCategory('Group')" />
      <Setter Property="Background" Value="#80008080" />
   </Style>
   <Style TargetType="Node">
      <Setter Property="HorizontalAlignment" Value="Center" />
   </Style>
</Styles>
</DirectedGraph>

[凡例] ボックスを変更する

[凡例] ボックス内のスタイルを、次のように再整列、削除、または一時的に無効化できます。

  1. [凡例] ボックスのスタイルのショートカット メニューを開きます。

  2. 次のいずれかのタスクを実行します。

    目的

    Choose

    アイテムを上へ移動する

    [上へ移動]

    アイテムを下へ移動する

    [下へ移動]

    アイテムを削除する

    [Delete]

    アイテムを無効にする

    [無効化]

    アイテムを再度有効にする

    [有効化]

一方のグラフから他方のグラフにスタイルをコピーする

  1. [凡例] ボックスがソース グラフに表示されることを確認します。 表示されない場合は、ソース グラフの空白領域のショートカット メニューを開きます。 [凡例を表示する] をクリックします。

  2. [凡例] ボックスのショートカット メニューを開きます。 [凡例のコピー] をクリックします。

  3. 凡例をターゲット グラフに貼り付けます。

ノードおよびリンクにプロパティを割り当てる

ノードおよびリンクにプロパティを割り当てることで、ノードおよびリンクを編成できます。 たとえば、特定のプロパティを持つノードを選択して、それらのグループ化、スタイルの変更、または非表示化を実行できます。

ノードにプロパティを割り当てるには

  1. ノードのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。

  2. <Node/> 要素で、プロパティの名前とその値を指定します。 次のように記述します。

    <Nodes>
       <Node Id="MyNode" MyPropertyName="PropertyValue" />
    </Nodes>
    
  3. <Property/> 要素を <Properties> セクションに追加して、属性 (要素の表示名、データ型など) を指定します。

    <Properties>
       <Property Id="MyPropertyName" Label="My Property" DataType="System.DataType"/>
    </Properties>
    

リンクにプロパティを割り当てるには

  1. グラフ上で、マウス ポインターをリンクの上に移動します。 リンクのソース ノードとターゲット ノードを識別するツールヒントが表示されます (キーボード: リンクにフォーカスが置かれるまで Tab キーを押します)。

  2. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  3. リンク元ノードとリンク先ノードの両方の名前を含む <Link/> 要素を探します。

  4. <Node/> 要素で、プロパティの名前とその値を指定します。 次のように記述します。

    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" MyPropertyName="PropertyValue" />
    </Links>
    
  5. <Property/> 要素を <Properties> セクションに追加して、属性 (要素の表示名、データ型など) を指定します。

    <Properties>
       <Property Id="MyPropertyName" Label="My Property Name" DataType="System.DataType"/>
    </Properties>
    

ノードおよびリンクにカテゴリを割り当てる

ノードにカテゴリを割り当てることで、ノードを編成できます。 たとえば、特定のカテゴリに属するノードを選択して、それらのグループ化、スタイルの変更、または非表示化を実行できます。 特定のカテゴリを持つリンクは強調表示できます。 詳細については、以下のセクションを参照してください。

  • グループ ノード

  • ノードおよびリンクのスタイルを変更する

  • ノードの表示/非表示を切り替える

ノードにカテゴリを割り当てるには

  • [カテゴリ 1] などの定義済みのカテゴリを割り当てるには、ノードのショートカット メニューを開きます。 [分類] をクリックし、定義済みのカテゴリを選択します。

または

  • カスタム カテゴリを作成して割り当てるには

    • 分類するノードを選択します。 F4 キーを押して [プロパティ] ウィンドウを開きます。 ノードの [新しいカテゴリ] プロパティにカテゴリ名を入力します。 Enter キーを押します。

    または

    1. ノードのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

      Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。

    2. <Node/> 要素に Category 属性を追加して、カテゴリの名前を指定します。 次のように記述します。

      <Nodes>
         <Node Id="MyNode" Category="MyCategory" />
      </Nodes>
      
    3. <Categories> セクションに <Category/> 要素を追加することで、Label 属性を使用してそのカテゴリの表示テキストを指定できます。

      <Categories>
         <Category Id="MyCategory" Label="My Category" />
      </Categories>
      

リンクにカテゴリを割り当てるには

  1. グラフで、マウス ポインターをリンクの上へ移動してツールヒントを表示し、リンク元ノードとリンク先ノードを確認します。(キーボード: リンクにフォーカスが置かれるまで Tab キーを押します)。

  2. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  3. リンク元ノードとリンク先ノードの両方の名前を含む <Link/> 要素を探します。

  4. <Link/> 要素に Category 属性を追加して、カテゴリの名前を指定します。 次のように記述します。

    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" Category="MyCategory"
    </Links>
    
  5. <Categories> セクションに <Category/> 要素を追加することで、Label 属性を使用してそのカテゴリの表示テキストを指定できます。

    <Categories>
       <Category Id="MyCategory" Label="My Category" />
    </Categories>
    

階層構造のカテゴリを作成すると、継承を使用してノードの編成および子カテゴリへの属性の追加を行う際に便利です。

階層構造のカテゴリを作成するには

  • 親カテゴリを示す <Category/> 要素を追加し、次に子カテゴリの <Category/> 要素に BasedOn 属性を追加します。

    次のように記述します。

    <Nodes>
       <Node Id="MyFirstNode" Label="My First Node" Category= "MyCategory" />
       <Node Id="MySecondNode" Label="My Second Node" />
    </Nodes>
    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" />
    </Links>
    <Categories>
       <Category Id="MyCategory" Label="My Category" BasedOn="MyParentCategory"/>
       <Category Id="MyParentCategory" Label="My Parent Category" Background="Green"/>
    </Categories>
    

    この例では、MyFirstNode の背景は緑色になります。これは、その Category 属性が MyParentCategory の Background 属性を継承するためです。

ノードまたはリンクに項目をリンクする

ドキュメントや URL などの項目をノードまたはリンクにリンクするには、グラフの .dgml ファイルを編集し、ノードの <Node/> 要素またはリンクの <Link/> 要素に Reference 属性を追加します。 これで、ノードまたはリンクからそのコンテンツを開いて参照できるようになります。 Reference 属性では、そのコンテンツのパスを指定します。 これには、.dgml ファイルの場所に対する相対パス、または絶対パスを使用できます。

注意

相対パスを使用し、.dgml ファイルが別の位置に移動された場合、それらのパスは解決しません。リンクされたコンテンツを開いて参照しようとした場合、コンテンツを表示できないことを示すエラーが発生します。

たとえば、次のアイテムをリンクできます。

  • クラスに対する変更を示すには、クラスを示すノードに、作業項目、ドキュメント、または別の .dgml ファイルの URL をリンクします。

  • ソフトウェアの論理アーキテクチャのレイヤーを表すグループ ノードにレイヤー図をリンクします。

  • インターフェイスを公開するコンポーネントに関する詳細情報を表示するには、そのインターフェイスを示すノードにコンポーネント図をリンクします。

  • ノードを、ノードに関連する Team Foundation Server の作業項目やバグ、またはその他の情報にリンクします。

アイテムからノードへのリンクを設定するには

  1. グラフ上でノードのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。

  2. 次の表にあるタスクのいずれかを実行します。

    リンク対象

    実行する手順

    単一のアイテム

    • <Node/> 要素または <Link/> 要素で、Reference 属性を追加して項目の場所を指定します。

      注意

      1 つの要素に対して 1 つの Reference 属性のみを使用できます。

    次のように記述します。

    <Nodes>
           <Node Id="MyNode" Reference="MyDocument.txt" />
        </Nodes>
        <Properties>
           <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
        </Properties>

    複数のアイテム

    1. <Node/> 要素または <Link/> 要素で、各参照の場所を指定する新しい属性を追加します。

    2. <Properties> セクションで、次の操作を行います。

      1. 新しい種類の参照ごとに <Property/> 要素を追加します。

      2. 新しい参照属性の名前に Id 属性を設定します。

      3. IsReference 属性を追加し、それを True に設定して、参照が項目の [ジャンプ] ショートカット メニューに表示されるようにします。

      4. Label 属性を使用して、項目の [ジャンプ] ショートカット メニューの表示テキストを指定します。

    次のように記述します。

    <Nodes>
           <Node Id="MyNode" SequenceDiagram="MySequenceDiagram.sequencediagram" ActiveBugs="MyActiveBugs.wiq"/>
        </Nodes>
        <Properties>
           <Property Id="SequenceDiagram" Label="My Sequence Diagram" DataType="System.String" IsReference="True" />
           <Property Id="ActiveBugs" Label="Active Bugs" DataType="System.String" IsReference="True" />
        </Properties>
    グラフでは、ノードの名前は下線付きで表示されます。 ノードまたはリンクのショートカット メニューを開いたときに、選択対象のリンクされた項目を含む **\[ジャンプ\]** ショートカット メニューが表示されます。
    1. 参照で文字列を繰り返し使用する代わりに、ReferenceTemplate 属性を使用して、複数の参照で使用する共通の文字列 (URL など) を指定します。

      ReferenceTemplate 属性では、参照の値のプレースホルダーを指定します。 次の例では、ReferenceTemplate 属性の {0} プレースホルダーは、<Node/> 要素の MyFirstReference 属性および MySecondReference 属性の値に置換され、完全なパスが生成されます。

      <Nodes>
         <Node Id="MyNode" MyFirstReference="MyFirstDocument" MySecondReference="MySecondDocument"/>
         <Node Id="MySecondNode" MyFirstReference="AnotherFirstDocument" MySecondReference="AnotherSecondDocument"/>
      </Nodes>
      <Properties>
         <Property Id="MyFirstReference" Label="My First Document" DataType="System.String" IsReference="True" ReferenceTemplate="http://www.Fabrikam.com/FirstDocuments/{0}.asp"/>
         <Property Id="MySecondReference" Label="My Second Document" DataType="System.String" IsReference="True" ReferenceTemplate=" http://www.Fabrikam.com/SecondDocuments/{0}.asp"/>
      </Properties>
      
    2. 参照される項目をグラフから表示するには、ノードまたはリンクのショートカット メニューを開きます。 [ジャンプ] をクリックし、項目を選択します。

    よく使用されるパスのエイリアスを作成する

    よく使用されるパスをエイリアスに置き換えると、.dgml ファイルのサイズを小さくして、ファイルの読み込みまたは保存に必要な時間を短縮することができます。 エイリアスを作成するには、.dgml ファイルの末尾に <Paths></Paths> セクションを追加します。 このセクションには、パスのエイリアスを定義する <Path/> 要素を追加します。

    <Paths>
       <Path Id="MyPathAlias" Value="C:\...\..." />
    </Paths>
    

    .dgml ファイル内の要素からエイリアスを参照するには、<Path/> 要素の Id 値をドル記号 ($) とかっこ (()) で囲みます。

    <Nodes>
       <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
    </Nodes>
    <Properties>
       <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
    </Properties>
    

    Directed Graph Markup Language (DGML) について

    DGML では、単純な XML を使用して、循環および非循環の有向グラフを記述します。 有向グラフは、リンク (エッジ) によって接続されている一連のノードです。 ノードとリンクを使用すると、ネットワーク構造 (ソフトウェア プロジェクトの要素など) を表すことができます。 情報の視覚化、複雑性解析の実行、または単に有向グラフの参照および編集を行うには、DGML を使用します。

    ノードとリンクはグラフ要素、または単に要素と呼ばれます。 DGML で使用される要素の種類を次の表に示します。

    注意

    .dgml ファイルを編集するときは、各要素とその値に使用できる属性が IntelliSense によって識別されます。属性で色を指定するには、一般的な色の名前 ("Blue" など) または ARGB 16 進値 ("#ffa0b1c3" など) を使用してください。DGML では、WPF (Windows Presentation Foundation) 色定義形式の小さいサブセットを使用します。詳細については、「Colors クラス」を参照してください。

    要素

    サンプルの形式

    <DirectedGraph></DirectedGraph>

    この要素は、有向グラフ (.dgml) ドキュメントのルート要素です。 他のすべての DGML 要素は、この要素のスコープ内に表示されます。

    追加できる属性 (省略可能) は次のとおりです。

    • Background - グラフの背景色。

    • BackgroundImage - グラフの背景として使用するイメージ ファイルの場所。

    • GraphDirection - グラフがツリー レイアウト (Sugiyama) に設定された場合に、ほとんどのリンクが指定方向 (TopToBottom、BottomToTop、LeftToRight、または RightToLeft) に向かうようにノードを配置します。 「依存関係グラフの参照および再配置」を参照してください。

    • Layout - グラフのレイアウトを None、Sugiyama (ツリー レイアウト)、ForceDirected (クイック クラスター)、または DependencyMatrix に設定します。 「依存関係グラフの参照および再配置」を参照してください。

    • NeighborhoodDistance - グラフがツリー レイアウトまたはクイック クラスター レイアウトに設定された場合に、選択したノードから指定されたリンク数 (1 ~ 7) 離れたノードのみ表示します。 「依存関係グラフの参照および再配置」を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" Background="Blue" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          ...
       </Nodes>
       <Links>
          ...
       </Links>
       <Categories>
          ...
       </Categories>
       <Properties>
          ...
       </Properties>
    </DirectedGraph>

    <Nodes></Nodes>

    この省略可能な要素には、グラフ上のノードを定義する <Node/> 要素の一覧が含まれます。 詳細については、<Node/> 要素を参照してください。

    注意

    <Link/> 要素内の未定義のノードを参照する場合、グラフでは <Node/> 要素が自動的に作成されます。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node ... />
       </Nodes>
       <Links>
          <Link ... />
       </Links>
    </DirectedGraph>

    <Node/>

    この要素は、単一のノードを定義します。 この要素は、<Nodes><Nodes/> 要素の一覧内に表示されます。

    この要素には、次の属性が必要です。

    • Id - ノードの一意の名前。Label 属性が別途指定されていない場合は、Label 属性の既定値です。 この名前は、名前を参照するリンクの Source 属性または Target 属性と一致する必要があります。

    追加できる属性 (省略可能) の一部を次に示します。

    • Label - ノードの表示名。

    • スタイル属性。 「ノードおよびリンクにカスタム スタイルを適用する」を参照してください。

    • Category - この属性を共有する要素を識別するカテゴリの名前。 詳細については、<Category/> 要素を参照してください。

    • Property - プロパティ値が同じ要素を識別するプロパティの名前。 詳細については、<Property/> 要素を参照してください。

    • Group - ノードに他のノードが含まれている場合は、この属性を Expanded または Collapsed に設定して、そのコンテンツの表示と非表示を切り替えます。 Category="Contains" 属性を含み、親ノードをリンク元ノード、子ノードをリンク先ノードとして指定する <Link/> 要素が必要です。 「ノードをグループに編成する」を参照してください。

    • Visibility - この属性を Visible、Hidden、または Collapsed に設定します。 System.Windows.Visibilityが使用されます。 「ノードの表示/非表示を切り替える」を参照してください。

    • Reference - この属性をドキュメントまたは URL へのリンクに設定します。 「アイテムをノードにリンクする」を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Student" Category="Person" />
          <Node Id="Passenger" Label="Instructor" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
       </Nodes>
       <Links>
          <Link ... />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
       </Categories>
    </DirectedGraph>

    <Links></Links>

    この要素には、ノード間のリンクを定義する <Link> 要素の一覧が含まれます。 詳細については、<Link/> 要素を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Links>
          <Link ... />
       </Links>
    </DirectedGraph>

    <Link/>

    この要素は、リンク元ノードをリンク先ノードに接続する単一のリンクを定義します。 この要素は、<Links></Links> 要素の一覧内に表示されます。

    注意

    この要素が未定義のノードを参照する場合、グラフ ドキュメントでは、指定された属性を含むノードが自動的に作成されます。

    この要素には、次の属性が必要です。

    • Source - リンク元ノード。

    • Target - リンク先ノード。

    追加できる属性 (省略可能) の一部を次に示します。

    • Label - リンクの表示名。

    • スタイル属性。 「ノードおよびリンクにカスタム スタイルを適用する」を参照してください。

    • Category - この属性を共有する要素を識別するカテゴリの名前。 詳細については、<Category/> 要素を参照してください。

    • Property - プロパティ値が同じ要素を識別するプロパティの名前。 詳細については、<Property/> 要素を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Student" Category="Person" />
          <Node Id="Passenger" Label="Instructor" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
       </Nodes>
       <Links>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Link Source="Driver" Target="Car" Label="Passed" Stroke="Black" Background="Green" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Stroke="Black" Background="Red" Category="PassedTest" />
       </Links>
    </DirectedGraph>

    <Categories></Categories>

    この要素には、<Category/> 要素の一覧が含まれます。 詳細については、<Category/> 要素を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Categories>
           <Category ... />
       </Categories>
    </DirectedGraph>

    <Category/>

    この要素は、この属性を共有する要素を識別するために使用される Category 属性を定義します。 Category 属性を使用すると、グラフ要素の整理、継承による共有属性の提供、または追加のメタデータの定義が可能になります。

    この要素には、次の属性が必要です。

    • Id - カテゴリの一意の名前。Label 属性が別途指定されていない場合は、Label 属性の既定値です。

    追加できる属性 (省略可能) の一部を次に示します。

    • Label - カテゴリのわかりやすい名前。

    • BasedOn - 現在の要素の <Category/> の継承元の親カテゴリ。

      この要素の例では、FailedTest カテゴリは、PassedTest カテゴリから Stroke 属性を継承します。 「ノードおよびリンクにカテゴリを割り当てる」の「階層構造のカテゴリを作成するには」を参照してください。

    また、カテゴリでは、グラフに表示されるノードおよびリンクの外観を制御するいくつかの基本的なテンプレート動作が指定されます。 「ノードおよびリンクにカスタム スタイルを適用する」を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Driver" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
          <Node Id="Passenger" Category="Person" />
       </Nodes>
       <Links>
          <Link Source="Driver" Target="Car" Label="Passed" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Category="FailedTest" />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Category Id="PassedTest" Label="Passed" Stroke="Black" Background="Green" />
          <Category Id="FailedTest" Label="Failed" BasedOn="PassedTest" Background="Red" />
       </Categories>
    </DirectedGraph>

    <Properties></Properties>

    この要素には、<Property/> 要素の一覧が含まれます。 詳細については、<Property/> 要素を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Properties>
           <Property ... />
       </Properties>
    </DirectedGraph>

    <Property/>

    この要素は、カテゴリおよびその他のプロパティを含む任意の DGML 要素または属性に値を代入する際に使用できる Property 属性を定義します。

    この要素には、次の属性が必要です。

    • Id - プロパティの一意の名前。Label 属性が別途指定されていない場合は、Label 属性の既定値です。

    • DataType - プロパティに格納されるデータの型。

    [プロパティ] ウィンドウにプロパティを表示する場合は、Label プロパティを使用して、対象のプロパティの表示名を指定します。

    「ノードおよびリンクにプロパティを割り当てる」を参照してください。

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Driver" Category="Person" DrivingAge="18"/>
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
          <Node Id="Passenger" Category="Person" />
       </Nodes>
       <Links>
          <Link Source="Driver" Target="Car" Label="Passed" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Category="FailedTest" />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Category Id="PassedTest" Label="Passed" Stroke="Black" Background="Green" />
          <Category Id="FailedTest" Label="Failed" BasedOn="PassedTest" Background="Red" />
       </Categories>
       <Properties>
           <Property Id="DrivingAge" Label="Driving Age" DataType="System.Int32" />
       </Properties>
    </DirectedGraph>

    参照

    概念

    依存関係グラフ上のコード間での依存関係の対応付け

    依存関係グラフの参照および再配置