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

您可以重新排列的依赖关系图的项目,使它们更容易阅读和提高渲染性能。

要求

主题内容

  • 管理大型图

  • 更改图形布局

  • 浏览关系图

  • 检查节点和链接

  • 隐藏或显示节点和链接

  • 组节点

更多的途径通过使用鼠标或键盘,或选择一个空白图表的帮助链接来浏览图。

管理大关系图

当您第一次生成依赖图,Visual Studio会为它找到的所有依赖关系创建一个代码索引。 虽然这个过程可能需要一段时间,特别是大型的解决方案或图形与许多环节,该索引能提高后续操作的性能。 如果代码改变后,则Visual Studio中重新建立索引只更新后的代码。

如果您不想等待图形来完成产生,你可以在任何时候取消的生成过程,尝试以下建议:

在生成的图形后,请尝试以下建议:

  • 图上的工具栏,选择Quick Clusters关系图工具栏上的“快速群集”按钮这样你可以看到自然的依赖性集群中的代码。 请参见更改图形布局。

    依赖项关系图 - 快速群集布局

  • 通过将相关的节点组织成更小的区域图。 收起这些组可以看到了会自动出现的群体间的依赖关系。 请参见组节点。

  • 手动编辑图形删除不需要节点和链路。 改变关系图,不影响底层代码。 请参见 编辑和自定义依赖项关系图

更改关系图布局

若要

在图形上工具栏或图形快捷菜单

一个特定方向上排列整个图形的依赖性流动。 这可以帮助你在代码看到架构层。

选择下列其中一个显示图形为一棵树:

  • 从左到右 “从左到右布局”按钮

  • 从右到左 “从右到左”关系图按钮

  • 从上到下 “从上到下”关系图按钮

  • 从下到上 “从下到上”关系图按钮

在代码中看自然的依赖集群。

选择快速集群 关系图工具栏上的“快速群集”按钮看到在中心簇中最相关的节点和最少依赖外侧的集群节点。

依赖项关系图 - 快速群集布局

移动图形上的特定节点,拖动它们。 要移动其他节点和链路的出路在您拖动节点 ,请按住SHIFT键的同时拖动节点移动其他节点和链路的出路。 通过选择树布局之一改变布局一组图形的独立的内部,快速集群,或列表视图,它排列了小组的内容到一个列表。 请参见组节点。

备注

下列功能在这个版本不可用:邻居浏览模式,蝴蝶模式,高级选择,和依赖关系矩阵视图 。

浏览关系图

若要

执行这些步骤

扫描图

拖曳在任何方向上的曲线图。

放大或缩小关系图

转动鼠标滚轮。

- 或 -

在图形工具栏上选择加号(+)或减号(-)。

- 或 -

若要放大特定区域,请使用鼠标右键围绕该区域画出一个矩形。

调整大小来适应窗口

图上的工具栏,选择Zoom to Fit。

- 或 -

双击图的空白区域。

调整和居中图形在特定节点上

展开该节点。 在空白区域内双击该节点。

Visual Studio中调整大小,使整个集团在图形窗口内适合图形。

如果您双击一个折叠的命名空间,类或它的成员,Visual Studio会显示你的代码定义。

单独更改当前选定节点的焦点

按 TAB。

出现一条虚线围绕当前处于焦点的节点。

发现图上用它的名字的一个节点。

提示

若要寻找解决方案,但不在项目在图表上,在解决方案资源管理器中找,然后将它们拖曳到图。

依赖项关系图搜索框
  1. Ctrl+F

    一个搜索框出现在图的右上角。

  2. 键入项目名称。 自定义搜索,选择一个搜索选项。

    符合您搜索的第一个项目显示为选中的图形。

  3. 看另一个符合,选择 Find Next (按F3)。

    - 或 -

    要选择所有符合的,打开下拉列表。 选择Select All。

重要

当那些组比先前扩大时,你可以使用搜索框查找在折叠组中符合的。为了找到这些匹配的,自动扩展他们的父级组织,选择搜索框下的选项。

查找链接的源或目标

如果有太多链接而无法轻松地看到特定链接的源或目标,请使用此方法。

  1. 更改图形布局以树为布局或者 Quick Clusters 关系图工具栏上的“快速群集”按钮 布局。

    请参见更改图形布局。

  2. 移动链路顶部的鼠标指针,或选择链接。

    Visual Studio中显示两个箭头和一个工具提示,其中列出了链接和其他环节的详细信息的源和目标。

  3. 选择指向您所要遵循的方向的箭头。

    源或目标显示被选中,取决于你所选择的方向。

选择所有未选定节点

打开的快捷菜单中选择的节点。 选择Select,Invert Selection。

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

打开的快捷菜单中选择的节点。 选择Select下列其中的一个:

  • 选择直接链接到所选择的节点的其他节点,选择Incoming Dependencies。

  • 选择从直接链接到所选择的节点的其他节点,选择Outgoing Dependencies。

  • 以选择直接链接以及从所选择的节点发出的其他节点,选择Both。

  • 以选择链接到与从所选择的节点的所有节点,选择Connected Subgraph。

  • 要选择所选节点的所有子节点,选择Children。

检查节点和链路

依赖关系图显示下列类型的链接:

  • 一个单独的链路表示两个节点之间的单个关系。

  • 跨组链接表示在不同的组中的两个节点之间的关系。

  • 总链路代表所有指向在两组相同的方向的关系。

提示

默认情况下,图表只显示所选节点跨组链接。为了显示所有项目的链接,在图形工具栏上打开 更改链接如何在图形上呈现 列表 “更改链接在关系图上的呈现方式”按钮。选择 显示所有跨组链接。

这将隐藏组之间聚合链路。

若要

执行这些步骤

查看节点或链路的详细信息

将鼠标指针移动的节点或链路的顶部,直到出现工具提示。

工具提示为聚合链路列出了它所代表的个体的依赖。

- 或 -

打开快捷菜单节点或链路。 选择“属性”

显示或隐藏组的内容

  • 为了扩大一组,在打开节点的快捷菜单。 选择Group, Expand。

    - 或 -

    在移动节点顶部的鼠标指针,直到V 形按钮(^)出现。 选择V 形 (^) 按钮,以展开该组。

    (键盘:若要展开或折叠所选的组中,选择PLUS键(+)或MINUS键(-)。

    在选定的一组要展开或折叠中所有的,按住SHIFT键的同时选择PLUS键(+)或MINUS 键(-)。)

  • 要展开所有组,打开该图形的快捷菜单。 选择“组”,“全部展开”。

    备注

    如果展开所有组生成了不可用的图形或内存问题,则此命令不可用。建议您只展开关心组的图详情。

  • 折叠一个组,在打开的快捷菜单中的节点。 选择Group,Collapse。

    - 或 -

    在移动组顶部的鼠标指针,直到V 形按钮(^)出现。 选择V 形 (^) 按钮,以折叠该组。

  • 要折叠所有组,打开该图形的快捷菜单。 选择Group,Collapse All。

看到一个命名空间,类型或成员的代码定义

打开的快捷菜单中节点。 选择转到,转到定义。

- 或 -

双击节点。 为扩大组,双击该组的头。

- 或 -

选择节点。 按 F12。

例如:

  • 对于一个命名空间,为第一类按字母顺序排列在该命名空间的代码文件打开,以显示该类的定义。

    备注

    当您在Visual Basic.NET中的命名空间执行此任务,命名空间后面的代码文件无法打开。当您对包含 Visual Basic .NET 命名空间的一组所选节点执行此任务时,也会出现此问题。要解决此问题,手动浏览到命名空间后面的代码文件,或者从您的选择省略命名空间的节点。

  • 针对一类或一个局部类,这个类的代码文件将打开,显示类定义。

  • 对于一个方法,打开父类的代码文件,显示方法定义。

查找链接的源或目标

如果有太多链接而无法轻松地看到特定链接的源或目标,请使用此方法。

  1. 打开图形工具栏,更改图形布局以树为布局或者 Quick Clusters 关系图工具栏上的“快速群集”按钮 布局。

  2. 移动链路顶部的鼠标指针,或选择链接。

    Visual Studio中显示两个箭头和一个工具提示,其中列出了链接和其他环节的详细信息的源和目标。

  3. 选择指向您所要遵循的方向的箭头。

    源或目标显示被选中,取决于你所选择的方向。

检查依赖性和参与的聚合链路项目

对于单个链接:

  1. 选择链接。

  2. 移动鼠标指针到链接的顶部。 当Visual Studio会显示两个箭头用加号(+)间隔它们,选择加号(+)。

    要创建一个新的图形,请按住SHIFT键的同时选择加号(+)。

    - 或 -

    打开的快捷菜单中所选择的。 选择“显示”,“当前关系图中的参与链接”或“新关系图中的参与链接”。

对于多个链接:

  1. 选择链接。

  2. 打开的快捷菜单中所选择的。 选择“显示”,“当前关系图中的参与链接”或“新关系图中的参与链接”。

Visual Studio 会展开链接两端的组,且只会显示参与该链接的那些项目和依赖项。

备注

当您检查组部分项目之间的依赖关系,你可能会看到下列行为:

  • 不参与你的检查链接项目从图中消失,尽管这些链接仍然存在。

  • 假设你在检查的部分组链接到一个项目,再后来检查不同的链接到同一项目。在你的第二次检查,目标部分组只显示出从你第一次检查项目。没有参与的第一次检查的链接和目标项目,但参与的第二次检查中没有出现。

查看从组中的消失项目,选择Refetch Children “重新提取子级”图标这表明,一组不是所有的成员会出现在图形上。您也可以尝试取消自己的动作(键盘:选择CTRL+Z),并检查了新图的依赖关系。

检查跨多个节点的依赖关系在不同的组

  1. 展开组,以便您可以看到所有的孩子。

  2. 选择感兴趣的所有节点(包括其子级)。

    当你按住鼠标左键在组上拖出一个矩形来选择组中所有的节点。 选择在图表上的所有节点,按住CTRL+A。

    关系图将显示所选节点之间的跨组链接。

    提示

    为了显示所有项目的跨组链接,在图形工具栏上打开 更改链接如何在图形上呈现 列表 “更改链接在关系图上的呈现方式”按钮。选择 显示所有跨组链接。

请参阅项目,一个节点或链路的参考

备注

这仅适用于当Reference属性设置为图形的.dgml 文件中的节点或链路。

将引用添加到从节点或链路项目,请参见 编辑和自定义依赖项关系图

打开的快捷菜单中节点。 选择Goto和条目。

隐藏或显示节点和链路

隐藏节点让他们参与布局算法。 默认情况下,跨组链接被隐藏。 跨组链接是连接各组节点各个环节。 当被折叠组,图形聚合所有跨组链接到组之间的单链接。 当您展开一个组,选择该组内的节点,跨组链接出现,并显示依赖性在该组。

警告

在共享一个在Visual Studio旗舰版中使用Visual Studio高级版或Visual Studio专业版的创建图表,一定要取消隐藏那些希望别人看到的任何节点或跨组链接。否则,这些用户将无法取消隐藏这些项目。

隐藏或显示节点

若要

执行这些步骤

隐藏所选节点

  1. 选择要隐藏的节点。

  2. 打开的快捷菜单中选择的节点或图形。 选择Select ,Hide Selected。

隐藏未选定节点

  1. 选择要可见的节点。

  2. 打开的快捷菜单中选择的节点或图形。 选择Select,Hide Unselected。

显示隐藏的节点

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

  • 要显示所有隐藏节点,打开该图形的快捷菜单。 选择Select,Unhide All。

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

  1. 打开关系图图面的快捷菜单。 选择Goto,DGML。

    Visual Studio中打开该图的.dgmlL文件。

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

    Visibility="Hidden"

    例如:

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

显示或隐藏链接

若要

在图上的工具栏上,打开Change how links are rendered on the graph列表呈现或打开图形快捷菜单。 选择:

在任何时候都显示跨组链接

显示所有跨组链接

这将隐藏组之间聚合链路。

只显示跨组链接为选中的节点

显示所选节点的跨组链接

在任何时候都隐藏跨组链接

隐藏所有跨组链接

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

隐藏所有链接

若要显示所有链接,选择Hide All Links再次关闭此模式。

分组节点

若要

执行这些步骤

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

为了显示的容器节点为叶节点,选择节点。 打开的快捷菜单中所选择的。 选择Group,Convert To Leaf。

为了显示的容器节点为组节点,选择节点。 打开的快捷菜单中所选择的。 选择Group,Convert To Group。

要显示所有作为组节点的叶节点,打开该图形的快捷菜单。 选择Group ,Turn On Grouping。

要显示所有作为叶节点的组节点,打开该图形的快捷菜单。 选择Group ,Turn Off Grouping。

更改布局组内

  1. 选择组。

    该集组的工具栏开始出现。

    依赖项关系图 - 分组工具栏

  2. 打开更改组的布局样式列表依赖项关系图 - 分组工具栏 - 布局。 选择您想要的布局。

    List View 重新排列组的成员进入名单。 Graph Default复位组布局图的默认布局。 其他的选择,请参见更改图形布局。

一个节点添加到组

拖动节点到组。

当您拖动节点时,Visual Studio会显示一个指示,说明你是移动的节点。

您还可以拖动节点出一组。

一个节点添加到一个非组节点

你可以将任何节点为一组。 拖动节点到目标节点。

组选中的节点

  1. 选择要分组的节点。

    工具栏开始出现的最后一次选择的节点之上。

    依赖项关系图工具栏

  2. 在工具栏上,选择Group the selected nodes 关系图工具栏 - 对所选内容进行分组

    - 或 -

    打开的快捷菜单中所选择的。 选择Group ,Add Parent Group。

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

具有特定类别或属性组节点

  1. 选择具有特定类别或属性的节点。

  2. 打开的快捷菜单中所选择的。 选择Group ,Add Parent Group。

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

依据节点的容器对节点进行分组

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

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

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

  3. 右侧当前列中,选择已折叠操作列将其展开。(键盘上按Tab 移动焦点,直到已折叠的操作列扩展。)

    备注

    当您移动指针在它的上面的操作列将突出显示或焦点。

  4. 在操作栏,Contained By。(键盘:按Tab移动焦点,然后使用箭头键直到Contained By的关系被选中)

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

  6. 打开快捷菜单的图形表面,选择Group,Turn On Grouping。

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

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

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

  3. 在Architecture Explorer ,File System下,选择Select Files。

  4. 在下一栏,选择您所储存的.dgml文件。

  5. 使用Architecture Explorer找到并选择所有要分组的节点。

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

  6. 右侧当前列中,选择已折叠操作列将其展开。(键盘上按Tab 移动焦点,直到已折叠的操作列扩展。)

    备注

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

  7. 在操作栏,Grouping下,选择Group by Properties。(键盘:按Tab移动焦点,然后使用箭头键直到Group by Properties的命令被选中)

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

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

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

  10. 打开关系图图面的快捷菜单。 选择Group ,Turn On Grouping。

移除组

选择去除的一个或多个组。 打开的快捷菜单中所选择的。 选择Group, Remove Group。

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

选择要移动的节点。 打开的快捷菜单中所选择的。 选择Group,Remove From Parent。

也可以通过编辑关系图的 .dgml 文件来将节点组织为组。

将节点转换为组或添加新组

  1. 为了一个节点转换为一组,请打开快捷菜单节点。 选择Goto,DGML。

    Visual Studio中打开该图的.dgml文件,并突出了 <Node/>该节点的元素。

    - 或 -

    要添加新组:

    1. 打开快捷菜单图的空白区域。 选择Goto,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的属性,请参见编辑和自定义依赖项关系图中的类别分配给节点和链接

请参见

概念

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

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