编辑和自定义依赖项关系图

你可以在不影响基础代码的情况下编辑依赖项关系图。 当你希望将重点放在关键项目或交流有关代码的想法时,这很有用。 例如,若要突出显示感兴趣的区域,你可以选择节点并筛选它们,更改节点和链接的样式,隐藏或删除节点,以及使用属性、类别或组来组织节点。

你可以通过编辑关系图的定向关系图标记语言 (.dgml) 文件来进一步自定义关系图。 例如,你可以编辑元素来指定自定义样式,向节点和链接分配属性和类别,或将节点链接到项(如文档、URL 或其他关系图)。

备注

Visual Studio 将在你保存 .dgml 文件时删除所有未使用的 DGML 元素和属性来清理它们。当你手动添加新链接时,它还将自动创建节点元素。当你保存 .dgml 文件时,你添加到元素的任何特性可能会按字母顺序重新排列。有关 DGML 元素的更多信息,请参见了解定向关系图标记语言 (DGML)。

要求

主题内容

  • 选择节点或链路

  • 重命名节点或链路

  • 隐藏或显示节点和链路

  • 添加节点和链路

  • 向关系图中添加注释

  • 删除节点

  • 组节点

  • 合并关系图

  • 更改关系图的样式

  • 更改节点或链接样式

  • 将样式从一个关系图复制到另一个关系图

  • 为节点和链接分配属性

  • 为节点和链接分配类别

  • 将项链接到节点或链路

  • 创建常用路径的别名

选择节点或链路

若要

执行这些步骤

选择所有未选定节点

打开所选节点的快捷菜单。 选择“选择”“反向选择”

选择链接到所选节点的其他节点

打开所选节点的快捷菜单。 选择“选择”和下列各项之一:

  • 若要选择直接链接到所选节点的其他节点,请选择“传入依赖项”

  • 若要选择从所选节点直接链接的其他节点,请选择“传出依赖项”

  • 若要选择与所选节点直接相互链接的其他节点,请选择“两者”

  • 若要额外选择与所选节点相互链接的所有节点,请选择“已连接子关系图”

  • 若要额外选择所选节点的所有子节点,请选择“子级”

重命名节点或链路

  • 选择节点或链接。 按 F2。 编辑框显示后,重命名节点或链接。

    如果标签可见,则选择标签。

隐藏或显示节点和链路

隐藏节点将阻止节点参与布局算法。 默认情况下,将隐藏跨组链接。 跨组链接是连接跨组节点的单个链接。 如果组处于折叠状态,则关系图会将所有跨组链接聚合为组之间的单个链接。 当你展开一个组并选择该组内的节点时,跨组链接将出现并将显示组内的依赖项。

警告

在你与使用 Visual Studio Premium 或 Visual Studio Professional 的用户共享在 Visual Studio Ultimate 中创建的关系图之前,请确保取消隐藏你希望其他人看到的所有节点或跨组链接。否则,这些用户将无法取消隐藏这些项目。

隐藏或显示节点

若要

执行这些步骤

隐藏所选节点

  1. 选择要隐藏的节点。

  2. 打开所选节点或关系图的快捷菜单。 选择“选择”“隐藏所选内容”

隐藏未选定节点

  1. 选择要保持可见的节点。

  2. 打开所选节点或关系图的快捷菜单。 选择“选择”“隐藏未选内容”

显示隐藏节点

  • 若要显示组内的所有隐藏节点,请先确保展开组。 选择组左上角的“取消隐藏子级”“取消隐藏子级”图标

  • 若要显示所有隐藏节点,请打开关系图的快捷菜单。 选择“选择”“全部取消隐藏”

通过编辑 .dgml 文件来隐藏节点

  1. 打开关系图的快捷菜单。 选择“转到”“DGML”

    Visual Studio 将打开关系图的 .dgml 文件。

  2. 在 <Node/> 元素中,添加下面的特性以隐藏节点:

    Visibility="Hidden"

    例如:

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

显示或隐藏链接

若要

在关系图的工具栏上,打开“更改链接在关系图上的呈现方式”列表或打开关系图的快捷菜单。 选择:

始终显示跨组链接

显示所有跨组链接

这将隐藏组之间的聚合链接。

仅显示所选节点的跨组链接

显示所选节点的跨组链接

始终隐藏跨组链接

隐藏跨组链接

隐藏所有链接(或显示所有链接)

隐藏所有链接

若要显示所有链接,请再次选择“隐藏所有链接”禁用此模式。

添加节点和链路

添加新的未定义的节点

执行这些步骤

在当前指针位置

在关系图上选择用于放置新节点的位置。 按 Insert

指向所选节点的链接

  1. 选择源节点。

    节点上方开始出现工具栏。

    依赖项关系图工具栏

  2. 在工具栏上,选择“创建与此节点的类别相同的节点并添加指向它的链接”关系图工具栏 - 创建包含链接的节点

  3. 在关系图上选择用于放置新节点的位置。

    (键盘:按 Tab 键,直到你要从其链接的节点具有焦点,然后按 Alt+Insert。)

指向具有当前焦点的现有节点的链接

Tab 键,直到你要链接到其的节点具有焦点。 按 Alt+Shift+Insert

为下列项添加节点

执行这些步骤

解决方案中的项

  1. “解决方案资源管理器”中查找项。 使用“解决方案资源管理器”搜索框或浏览解决方案。 若要在“解决方案资源管理器”中浏览代码,请参见查看代码的结构

    提示

    若要查找具有类型或成员依赖项的项,请在“解决方案资源管理器”中打开类型或成员的快捷菜单。选择你感兴趣的关系。

    “解决方案资源管理器”仅显示具有指定依赖项的项。

  2. 将你感兴趣的项拖至关系图图面。

    若要在使用 Visual Studio Ultimate 时包含所选项的父容器层次结构,请在按住 Ctrl 键的同时将项拖至关系图。

    - 或 -

    “解决方案资源管理器”上,打开“创建新的关系图文档…”列表。 选择“添加到活动的依赖项关系图”。 若要添加父容器层次结构,请选择“添加到活动的具有包含层次结构的依赖项关系图”

    Visual Studio 将为你的选定内容中的顶级代码项添加节点。 若要查看节点是否包含项,请将鼠标指针移至节点上方,以便显示 V 形 (^) 。 选择 V 形 (^) 以展开节点。 若要展开所有节点,请打开关系图的快捷菜单。 选择“组”“全部展开”

    备注

    如果展开所有组将产生不可用的关系图或内存问题,则此命令不可用。

与关系图上的节点相关的项

打开节点的快捷菜单。 选择“显示”和你感兴趣的关系类型。

对于程序集,请选择:

  • 引用的程序集:添加此程序集引用的程序集。 外部程序集将显示在“外部”组中。

  • 引用程序集:在解决方案中添加引用此程序集的程序集。

对于类,请选择:

  • 基类型:对于类,请添加基类和已实现的接口。

    对于接口,请添加基接口。

  • 派生类型:对于类,请添加派生类。

    对于接口,请添加派生接口和实现类或结构。

  • 所有基类型:以递归方式添加基类或接口层次结构。

  • 所有派生类型:对于类,请以递归方式添加所有派生类。

    对于接口,请以递归方式添加所有派生接口和实现类或结构。

  • 包含层次结构:添加父容器层次结构。

  • 使用的类型:添加此类使用的所有类及其成员。

  • 使用者类型:添加使用此类的所有类及其成员。

对于方法,请选择:

  • 包含层次结构:添加父容器层次结构。

  • 所调用的方法:添加此方法调用的方法。

  • 调用者方法:添加调用此方法的方法。

  • 基类型中的已重写方法:对于重写其他方法或实现接口的方法的方法,请在重写的基类和实现的接口的方法(如果有的话)中添加所有抽象方法或虚方法。

  • 引用的字段:添加此方法引用的字段。

对于字段,请选择:

  • 包含层次结构:添加父容器层次结构。

  • 引用方法:添加引用此字段的方法。

编译 .NET 程序集(.dll 或 .exe)或二进制文件

使用“体系结构资源管理器”查找项和关系并将二者拖至关系图。

添加现有节点之间的链接

  1. 选择源节点。

    节点上方开始出现工具栏。

    依赖项关系图工具栏

  2. 在工具栏上,选择**“创建从此节点到你接下来单击的任意节点的新链接”**关系图工具栏 - 创建链接。 选择目标节点。

    链接将出现在两个节点之间。

向关系图中添加注释

  1. 选择你要在其中添加一个链接注释的节点。

    节点上方开始出现工具栏。

    依赖项关系图工具栏

  2. 在工具栏上,选择**“使用指向所选节点的新链接创建新的注释节点”**关系图工具栏 - 创建包含链接的注释

  3. 键入你的注释。 若要键入新行,请按 Shift+Enter

删除节点

你可以从关系图中删除节点,而不影响基础代码。 若要删除节点,请选择节点,然后按**“删除”**键。 删除节点时,将从 DGML (.dgml) 文件中删除其定义。

从组中删除节点时,组内将显示**“重新提取子级”按钮 “重新提取子级”图标。 若要检索缺少的节点,请选择“重新提取子级”**“重新提取子级”图标。 通过编辑 DGML、添加未定义的节点或通过使用早期版本的 Visual Studio Ultimate 创建的关系图不支持此功能。

警告

在你与使用 Visual Studio Premium 或 Visual Studio Professional 的用户共享使用 Visual Studio Ultimate 创建的关系图之前,请确保你希望其他人看到的所有节点在关系图上可见。否则,这些用户将无法检索已删除的节点。

组节点

若要

执行这些步骤

将容器节点显示为组节点或叶节点

若要将容器节点显示为叶节点,请选择节点。 打开所选节点的快捷菜单。 选择“组”“转换为叶”

若要将容器节点显示为组节点,请选择节点。 打开所选节点的快捷菜单。 选择“组”“转换为组”

若要将所有叶节点显示为组节点,请打开关系图的快捷菜单。 选择“组”“打开分组”

若要将所有组节点显示为叶节点,请打开关系图的快捷菜单。 选择“组”“关闭分组”

将节点添加到组

将节点拖至组上。

你还可以将节点拖出组。

将节点添加到非组节点

你可以将任何节点转换为一个组。 将节点拖至目标节点上。

将选定节点进行分组

  1. 选择要分组的节点。

    节点上方开始出现工具栏。

    依赖项关系图工具栏

  2. 在工具栏上,选择“将选定节点进行分组”关系图工具栏 - 对所选内容进行分组

    - 或 -

    打开所选节点的快捷菜单。 选择“组”“添加父组”

  3. 打开新组的快捷菜单。 选择“属性”。 在“标签”属性中重命名该组。

对具有特定类别或属性的节点进行分组

  1. “体系结构”菜单上,选择“窗口”“体系结构资源管理器”

  2. 使用体系结构资源管理器来查找和选择要分组的所有节点。

    请参见使用体系结构资源管理器查找代码

  3. 在当前列的右侧,选择折叠的操作列以将其展开。(键盘:按 Tab 键以移动焦点直至折叠的操作列展开。)

    备注

    将指针或焦点移动到操作列上方时,操作列将会突出显示。

  4. 在操作列中,单击“包含者”。(键盘:按 Tab 键移动焦点,然后使用箭头键直至选择“包含者”关系。)

  5. 从下一列中将容器组拖到关系图。

  6. 打开关系图的快捷菜单。 选择“组”“打开分组”

依据节点的属性值对节点进行分组

  1. 将关系图另存为磁盘上的 .dgml 文件。

  2. “体系结构”菜单上。 选择 Windows“体系结构资源管理器”

  3. “体系结构资源管理器”中的“文件系统”下,选择“选择文件”

  4. 在下一列中,选择你已保存的 .dgml 文件

  5. 使用“体系结构资源管理器”以查找并选择要对其进行分组的所有节点。

    请参见使用体系结构资源管理器查找代码

  6. 在当前列的右侧,选择折叠的操作列以将其展开。(键盘:按 Tab 键以移动焦点直至折叠的操作列展开。)

    备注

    将指针移到“操作”列上时,该列会突出显示。

  7. 在操作列中的“分组”下,选择“按属性分组”。(键盘:按 Tab 键移动焦点,然后使用箭头键直至选择“按属性分组”命令。)

  8. 在下一列中,选择要用作组的属性。

    下一列将出现,并显示可用的属性值。

  9. 从下一列中将属性值组拖到关系图。

  10. 打开关系图图面的快捷菜单。 选择“组”“打开分组”

移除组

选择你要移除的一个或多个组。 打开所选节点的快捷菜单。 选择“组”“移除组”

从节点的父组开始移除节点,直至其祖父组,或者,如果节点没有祖父组,则移除组外部的节点

选择要移动的节点。 打开所选节点的快捷菜单。 选择“组”“从父级移除”

通过编辑关系图的 .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

    背景色

    背景

    轮廓颜色

    边框

    文本颜色

    Foreground

    图标

    图标

    **“颜色集选取器”**框将显示,以供你选择一种颜色(或图标)。

  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> 元素不存在,请在 <DirectedGraph></DirectedGraph> 元素下的 <Links></Links> 元素后面添加一个该元素。

  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')"/>
    

    此表达式使用以下 Backus-Naur 形式 (BNF) 语法:

    <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> ::= single or double-quoted string literal

    <Number> ::= string of digits with optional decimal point

    您可以指定多个 <Condition/> 元素,这些元素必须均为 true 才能应用样式。

  2. 在 <Condition/> 元素后的下一行上,添加一个或多个 <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

    将样式上移

    上移

    将项下移

    下移

    删除项

    删除

    禁用项

    禁用

    重新激活项

    启用

将样式从一个关系图复制到另一个关系图

  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/> 元素,然后将 BasedOn 特性添加到子类别的 <Category/> 元素。

    例如:

    <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 文件并将 Reference 特性添加到节点的 <Node/> 元素或链接的 <Link/> 元素。 然后,你可以打开并查看节点或链接的内容。 Reference 特性指定该内容的路径。 此路径可能是相对于 .dgml 文件位置的路径,也可能是绝对路径。

警告

如果使用相对路径,并将 .dgml 文件移至其他位置,则将不再解析这些路径。当你尝试打开并查看链接内容时,将出现表示内容无法查看的错误。

例如,您可能希望链接以下项:

  • 若要描述某个类的更改,您可以将工作项、文档或另一个 .dgml 文件的 URL 链接到该类的节点。

  • 您可以将层关系图链接到表示软件逻辑体系结构中的层的组节点。

  • 若要显示有关公开某接口的组件的更多信息,您可以将组件图链接到该接口的节点。

  • 将节点链接到 Team Foundation Server 工作项或 Bug,或与节点相关的一些其他信息。

将项链接到节点

  1. 在关系图上,打开节点的快捷菜单。 选择**“转到”“DGML”**。

    Visual Studio 将打开关系图的 .dgml 文件并突出显示节点的 <Node/> 元素。

  2. 执行下表中的任务之一:

    若要链接

    执行这些步骤

    单一项

    • 在 <Node/> 或 <Link/> 元素中,添加 Reference 特性以指定项的位置。

      备注

      每个元素只能具有一个 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>
    

    了解定向图形标记语言 (DGML)

    DGML 使用简单 XML 来描述循环和非循环定向关系图。 定向关系图是一组由链接或边缘连接的节点。 可以使用节点和链接来表示网络结构,如软件项目中的元素。 使用 DGML 可执行以下操作:可视化信息、执行复杂性分析或仅浏览和编辑定向关系图。

    节点和链接称为关系图元素或简称为元素。 下表描述在 DGML 中使用的元素的种类:

    备注

    在编辑 .dgml 文件时,IntelliSense 可帮助您标识对每个元素及其值可用的特性。若要指定特性中的颜色,请使用常用颜色的名称,如“Blue”或 ARGB 十六进制值(如“#ffa0b1c3”)。DGML 使用一小部分 Windows Presentation Foundation (WPF) 颜色定义格式。有关详细信息,请参阅 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 以显示或隐藏其内容。 必须有一个 <Link/> 元素,此元素包含 Category="Contains" 特性并将父节点指定为源节点,而将子节点指定为目标节点。 请参见将节点组织为组。

    • 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/>

    此元素定义 Property 特性,此特性可用于将值分配给任何 DGML 元素或特性(包括类别和其他属性)。

    此元素必须包括以下特性:

    • 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>

    请参见

    概念

    在依赖项关系图上映射代码间的依赖关系

    浏览和重新排列依赖项关系图