您可以重新排列的依赖关系图的项目,使它们更容易阅读和提高渲染性能。
要求
Visual Studio Ultimate, Visual Studio Premium, 或 Visual Studio Professional
要创建依赖关系图,你必须有Visual Studio旗舰版。 请参见 在依赖项关系图上映射代码间的依赖关系。
主题内容
管理大型图
更改图形布局
浏览关系图
检查节点和链接
隐藏或显示节点和链接
组节点
更多的途径通过使用鼠标或键盘,或选择一个空白图表的帮助链接来浏览图。
管理大关系图
当您第一次生成依赖图,Visual Studio会为它找到的所有依赖关系创建一个代码索引。 虽然这个过程可能需要一段时间,特别是大型的解决方案或图形与许多环节,该索引能提高后续操作的性能。 如果代码改变后,则Visual Studio中重新建立索引只更新后的代码。
如果您不想等待图形来完成产生,你可以在任何时候取消的生成过程,尝试以下建议:
图中只有特定的依赖使你感兴趣。 请参见 在依赖项关系图上映射代码间的依赖关系。
在你生成图形为整个解决方案前,减少解决方案的范围。
在生成的图形后,请尝试以下建议:
图上的工具栏,选择Quick Clusters
这样你可以看到自然的依赖性集群中的代码。 请参见更改图形布局。
通过将相关的节点组织成更小的区域图。 收起这些组可以看到了会自动出现的群体间的依赖关系。 请参见组节点。
手动编辑图形删除不需要节点和链路。 改变关系图,不影响底层代码。 请参见 编辑和自定义依赖项关系图。
更改关系图布局
若要 |
在图形上工具栏或图形快捷菜单 |
---|---|
一个特定方向上排列整个图形的依赖性流动。 这可以帮助你在代码看到架构层。 |
选择下列其中一个显示图形为一棵树:
|
在代码中看自然的依赖集群。 |
选择快速集群 ![]() |
移动图形上的特定节点,拖动它们。 要移动其他节点和链路的出路在您拖动节点 ,请按住SHIFT键的同时拖动节点移动其他节点和链路的出路。 通过选择树布局之一改变布局一组图形的独立的内部,快速集群,或列表视图,它排列了小组的内容到一个列表。 请参见组节点。
备注
下列功能在这个版本不可用:邻居浏览模式,蝴蝶模式,高级选择,和依赖关系矩阵视图 。
浏览关系图
若要 |
执行这些步骤 |
---|---|
扫描图 |
拖曳在任何方向上的曲线图。 |
放大或缩小关系图 |
转动鼠标滚轮。 - 或 - 在图形工具栏上选择加号(+)或减号(-)。 - 或 - 若要放大特定区域,请使用鼠标右键围绕该区域画出一个矩形。 |
调整大小来适应窗口 |
图上的工具栏,选择Zoom to Fit。 - 或 - 双击图的空白区域。 |
调整和居中图形在特定节点上 |
展开该节点。 在空白区域内双击该节点。 Visual Studio中调整大小,使整个集团在图形窗口内适合图形。 如果您双击一个折叠的命名空间,类或它的成员,Visual Studio会显示你的代码定义。 |
单独更改当前选定节点的焦点 |
按 TAB。 出现一条虚线围绕当前处于焦点的节点。 |
发现图上用它的名字的一个节点。 提示 若要寻找解决方案,但不在项目在图表上,在解决方案资源管理器中找,然后将它们拖曳到图。 |
![]()
重要 当那些组比先前扩大时,你可以使用搜索框查找在折叠组中符合的。为了找到这些匹配的,自动扩展他们的父级组织,选择搜索框下的选项。 |
查找链接的源或目标 如果有太多链接而无法轻松地看到特定链接的源或目标,请使用此方法。 |
|
选择所有未选定节点 |
打开的快捷菜单中选择的节点。 选择Select,Invert Selection。 |
选择链接到选定的其他节点 |
打开的快捷菜单中选择的节点。 选择Select下列其中的一个:
|
检查节点和链路
依赖关系图显示下列类型的链接:
一个单独的链路表示两个节点之间的单个关系。
跨组链接表示在不同的组中的两个节点之间的关系。
总链路代表所有指向在两组相同的方向的关系。
提示
默认情况下,图表只显示所选节点跨组链接。为了显示所有项目的链接,在图形工具栏上打开 更改链接如何在图形上呈现 列表 。选择 显示所有跨组链接。
这将隐藏组之间聚合链路。
若要 |
执行这些步骤 |
---|---|
查看节点或链路的详细信息 |
将鼠标指针移动的节点或链路的顶部,直到出现工具提示。 工具提示为聚合链路列出了它所代表的个体的依赖。 - 或 - 打开快捷菜单节点或链路。 选择“属性”。 |
显示或隐藏组的内容 |
|
看到一个命名空间,类型或成员的代码定义 |
打开的快捷菜单中节点。 选择转到,转到定义。 - 或 - 双击节点。 为扩大组,双击该组的头。 - 或 - 选择节点。 按 F12。 例如:
|
查找链接的源或目标 如果有太多链接而无法轻松地看到特定链接的源或目标,请使用此方法。 |
|
检查依赖性和参与的聚合链路项目 |
对于单个链接:
对于多个链接:
Visual Studio 会展开链接两端的组,且只会显示参与该链接的那些项目和依赖项。 备注 当您检查组部分项目之间的依赖关系,你可能会看到下列行为:
查看从组中的消失项目,选择Refetch Children |
检查跨多个节点的依赖关系在不同的组 |
|
请参阅项目,一个节点或链路的参考 |
打开的快捷菜单中节点。 选择Goto和条目。 |
隐藏或显示节点和链路
隐藏节点让他们参与布局算法。 默认情况下,跨组链接被隐藏。 跨组链接是连接各组节点各个环节。 当被折叠组,图形聚合所有跨组链接到组之间的单链接。 当您展开一个组,选择该组内的节点,跨组链接出现,并显示依赖性在该组。
警告
在共享一个在Visual Studio旗舰版中使用Visual Studio高级版或Visual Studio专业版的创建图表,一定要取消隐藏那些希望别人看到的任何节点或跨组链接。否则,这些用户将无法取消隐藏这些项目。
隐藏或显示节点
若要 |
执行这些步骤 |
---|---|
隐藏所选节点 |
|
隐藏未选定节点 |
|
显示隐藏的节点 |
|
通过编辑.dgml文件隐藏节点 |
|
显示或隐藏链接
若要 |
在图上的工具栏上,打开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。 |
更改布局组内 |
|
一个节点添加到组 |
拖动节点到组。 当您拖动节点时,Visual Studio会显示一个指示,说明你是移动的节点。 您还可以拖动节点出一组。 |
一个节点添加到一个非组节点 |
你可以将任何节点为一组。 拖动节点到目标节点。 |
组选中的节点 |
|
具有特定类别或属性组节点 |
|
依据节点的容器对节点进行分组 |
|
依据节点的属性值对节点进行分组 |
|
移除组 |
选择去除的一个或多个组。 打开的快捷菜单中所选择的。 选择Group, Remove Group。 |
从节点的父组开始移除节点,直至其祖父组,或者,如果节点没有祖父组,则移除组外部的节点 |
选择要移动的节点。 打开的快捷菜单中所选择的。 选择Group,Remove From Parent。 |
也可以通过编辑关系图的 .dgml 文件来将节点组织为组。
将节点转换为组或添加新组
为了一个节点转换为一组,请打开快捷菜单节点。 选择Goto,DGML。
Visual Studio中打开该图的.dgml文件,并突出了 <Node/>该节点的元素。
- 或 -
要添加新组:
打开快捷菜单图的空白区域。 选择Goto,DGML。
在 <Nodes> 部分添加新的 <Node/> 元素。
在 <Node/> 元素中,添加一个 Group 特性以指定组显示为展开状态还是折叠状态。 例如:
<Nodes> <Node Id="MyFirstGroup" Group="Expanded" /> <Node Id="MySecondGroup" Group="Collapsed" /> </Nodes>
在 <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的属性,请参见编辑和自定义依赖项关系图中的类别分配给节点和链接。