Изменение и настройка графов зависимостей
Диаграммы зависимостей можно изменить, не меняя базовый код. Это полезно, когда нужно сосредоточить внимание на ключевых элементах или сообщить сведения о коде. Например, чтобы выделить требуемые области, можно выбрать узлы и отфильтровать их, изменить стиль узлов и связей, скрыть или удалить узлы, а также упорядочить узлы по свойствам, категориям или группам.
Диаграмму можно настроить еще точнее, изменив DGML-файл диаграммы. Например, можно изменить элементы, чтобы указать пользовательские стили, присвоить свойства и категории узлам и связям или связать узлы с элементами, такими как документы, URL-адреса или другие диаграммы.
Примечание
Программа Visual Studio удаляет все неиспользуемые DGML-элементы и атрибуты при сохранении DGML-файла.Она также создает элементы узла автоматически при добавлении новых связей вручную.При сохранении DGML-файла все атрибуты, добавляемые к элементу, могут самостоятельно упорядочиться в алфавитном порядке.Дополнительные сведения о DGML-элементах см. в разделе Основные сведения о языке разметки направленных графов (DGML).
Требования
Visual Studio Ultimate, Visual Studio Premium или Visual Studio Professional
Для создания диаграмм зависимостей необходимо наличие Visual Studio Ultimate. См. раздел Сопоставление зависимостей в коде в диаграммах зависимостей.
Содержание раздела
Выбор узлов и связей
Переименование узлов и связей
Скрытие и отображение узлов и связей
Добавление узлов и связей
Добавление комментариев к диаграмме
Удаление узлов
Группирование узлов
Объединение диаграмм
Изменение стиля графа
Изменение стиля узлов и связей
Копирование стилей из одного графа в другой
Присвоение свойств узлам и ссылкам
Присвоение категорий узлам и ссылкам
Связывание элементов с узлами и связями
Создание псевдонимов для часто используемых путей
Выбор узлов и связей
Целевой тип |
Выполните следующие действия |
---|---|
Выбор всех невыбранных узлов |
Откройте контекстное меню выбранных узлов. Щелкните Выбрать и выберите Обратить выделение. |
Выбор дополнительных узлов, связанных с уже выбранными |
Откройте контекстное меню выбранных узлов. Щелкните Выбрать и выполните одно из следующих действий.
|
Переименование узлов и связей
Выберите узел или связь. Нажмите клавишу F2. При появлении поля ввода переименуйте узел или связь.
Если метка отображается, выберите метку.
Скрытие и отображение узлов и связей
Если скрыть узлы, они не будут участвовать в алгоритмах создания макета. По умолчанию связи между группами скрыты. Связи между группами представляют собой отдельные связи, которые соединяют узлы между группами. Если свернуть группы, все связи между группами на диаграмме объединяются в единичные связи между группами. Если развернуть группу и выбрать в ней узлы, отобразятся связи между группами и зависимости в этой группе.
Предупреждение
Перед тем как предоставить общий доступ к диаграмме, созданной в Visual Studio Ultimate, пользователям Visual Studio Premium или Visual Studio Professional, отобразите все скрытые узлы или связи между группами, которые требуется показать другим пользователям.В противном случае пользователи не увидят эти элементы.
Скрытие и отображение узлов
Чтобы |
Выполните следующие действия |
---|---|
Скрыть выбранные узлы |
|
Скрыть невыбранные узлы |
|
Отобразить скрытые узлы |
|
Скрыть узлы, изменив DGML-файл |
|
Отображение или скрытие ссылок
Чтобы |
На панели инструментов диаграммы откройте список Изменение способа отображения связей на графе или откройте контекстное меню диаграммы. Выберите: |
---|---|
Всегда отображать связи между группами |
Показать все ссылки между группами В результате будут скрыты все совокупные связи между группами. |
Отобразить связи между группами только для выбранных узлов |
Показать ссылки между группами в выбранных узлах |
Всегда скрывать связи между группами |
Скрыть связи между группами |
Скрытие всех ссылок (или отображение всех ссылок) |
Скрыть все ссылки Чтобы отобразить все связи, щелкните Скрыть все связи еще раз для отключения этого режима. |
Добавление узлов и связей
Чтобы добавить новый неопределенный узел |
Выполните следующие действия |
---|---|
В текущую позицию указателя |
Выберите место на диаграмме, в которое следует поместить новый узел. Нажмите кнопку Вставить. |
Связанный с выбранным узлом |
|
Который ссылается на существующий узел с текущим фокусом |
Нажимайте клавишу TAB до тех пор, пока не будет установлен фокус на узел, к которому следует привязать данный узел. Нажмите клавиши ALT+SHIFT+INSERT. |
Чтобы добавить узлы |
Выполните следующие действия |
---|---|
Для элементов в решении |
|
Для элементов, связанных с узлами на диаграмме |
Откройте контекстное меню узла. Щелкните Показать и выберите требуемый тип отношений. Для сборки выберите:
Для класса выберите:
Для метода выберите:
Для поля выберите:
|
Для скомпилированных сборок .NET (DLL или EXE) или двоичных файлов |
Используйте область Обозреватель архитектуры, чтобы найти и перетащить элементы и отношения на диаграмму. |
Добавление связи между существующими узлами
Выберите исходный узел.
Над узлом отобразится панель инструментов.
На панели инструментов выберите Создание новой ссылки из этого узла на любой узел, который вы щелкните следующим
. Выберите целевой узел.
Между двумя узлами отобразится связь.
Добавление комментариев к диаграмме
Выберите узел, в который необходимо добавить связанный комментарий.
Над узлом отобразится панель инструментов.
На панели инструментов выберите Создание нового узла комментария с новой ссылкой на выбранный узел
.
Введите комментарии. Чтобы начать ввод с новой строки, нажмите клавиши SHIFT+ВВОД.
Удаление узлов
Узлы из диаграммы можно удалить, не меняя базовый код. Чтобы удалить узел, выберите узел и нажмите клавишу DELETE. При удалении узлов их определения удаляются из DGML-файла.
При удалении узлов из группы в группе отобразится кнопка Повторно извлечь дочерние элементы . Чтобы получить отсутствующие узлы, щелкните Повторно извлечь дочерние элементы
. Диаграммы, созданные путем изменения DGML, добавления неопределенных узлов или использования предыдущих версий Visual Studio Ultimate, не поддерживают эту возможность.
Предупреждение
Перед тем как предоставить общий доступ к диаграмме, созданной в Visual Studio Ultimate, пользователям Visual Studio Premium или Visual Studio Professional, отобразите все скрытые узлы, которые требуется показать другим пользователям.В противном случае эти пользователи не смогут извлечь удаленные узлы.
Группирование узлов
Чтобы |
Выполните следующие действия |
---|---|
Показать узлы контейнера в виде узлов группы или листовых узлов |
Чтобы отобразить узлы контейнера как листовые узлы, выберите узлы. Откройте контекстное меню выбранных элементов. Щелкните Группа и выберите Преобразовать в листовой узел. Чтобы отобразить узлы контейнера как узлы группы, выберите узлы. Откройте контекстное меню выбранных элементов. Щелкните Группа и выберите Преобразовать в группу. Чтобы отобразить все листовые узлы как узлы группы, откройте контекстное меню диаграммы. Щелкните Группа и выберите Включить группировку. Чтобы отобразить все узлы группы как листовые узлы, откройте контекстное меню диаграммы. Щелкните Группа и выберите Отключить группировку. |
Добавить узел в группу |
Перетащите узел в группу. Можно также перетаскивать узлы из группы. |
Добавить узел к узлу, не состоящему в группе |
Любой узел можно преобразовать в группу. Перетащите узел в целевой узел. |
Сгруппировать выбранные узлы |
|
Сгруппировать узлы, характерные для определенных категорий или свойств |
|
Группирование узлов в соответствии со значениями свойств |
|
Удалить группы |
Выберите группу или группы, которые требуется удалить. Откройте контекстное меню выбранных элементов. Щелкните Группа и выберите Удалить группу. |
Переместить узлы из родительской группы в прародительскую или вне группы, если прародительская группа не существует |
Выберите узлы, которые требуется переместить. Откройте контекстное меню выбранных элементов. Щелкните Группа и выберите Удаление из родительского элемента. |
Группировка узлов путем изменения DGML-файла диаграммы
Чтобы преобразовать узел в группу, откройте контекстное меню узла. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы и выделит элемент <Node/> для этого узла.
– или –
Чтобы добавить новую группу:
Откройте контекстное меню пустой области диаграммы. Щелкните Перейти и выберите DGML.
В разделе <Nodes> добавьте новый элемент <Node/>.
В элементе <Node/> добавьте атрибут Group, чтобы указать разворачивать группу при отображении или нет. Например
<Nodes> <Node Id="MyFirstGroup" Group="Expanded" /> <Node Id="MySecondGroup" Group="Collapsed" /> </Nodes>
В разделе <Links> убедитесь, что элемент <Link/> со следующими атрибутами существует для каждой связи между узлом группы и дочерними узлами:
Атрибут Source, который определяет узел группы.
Атрибут Target, который определяет дочерний узел.
Атрибут Category, который определяет связь Contains между узлом группы и его дочерним узлом
Например
<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-файле. Чтобы изменить стиль узла или ссылки, см. раздел Изменение стиля узлов и ссылок.
Откройте контекстное меню поверхности диаграммы. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы.
В элементе <DirectedGraph> добавьте следующие атрибуты, чтобы изменить его стиль:
Чтобы изменить
Добавьте следующий атрибут
Цвет фона
Background="ColorNameOrHexadecimalValue"
Цвет границы
Stroke="StrokeValue"
Например:
<DirectedGraph Background="Green" xmlns="https://schemas.microsoft.com/vs/2009/dgml" > ... ... </DirectedGraph>
Изменение стиля узлов и ссылок
Можно изменять значки на узлах, цвета узлов и ссылок. Можно воспользоваться предопределенными цветами и значками, либо указать свои, отредактировав DGML-файл графа. См. раздел Применение пользовательских стилей к узлам и связям.
Например, можно выбрать цвет подсветки узлов и ссылок в соответствии с категорией или свойством. Это позволит идентифицировать и сфокусироваться на определенной области графа.
Применение к узлу с определенной категорией или свойством предопределенного цвета или значка
Если окно Легенда не отображается, откройте контекстное меню диаграммы. Щелкните Показать легенду.
Проверьте, отображаются ли категория и свойство узла в поле Условные обозначения.
Если список не содержит категорию или свойство, щелкните + в окне Легенда, Категория узла или Свойство узла и выберите категорию или свойство.
Категория или свойство отобразится в окне Легенда.
Примечание
Чтобы создать и присвоить узлу категорию, см. раздел Присвоение категорий узлам и ссылкам.Чтобы создать и присвоить узлу свойство, см. раздел Присвоение свойств узлам и ссылкам.
В окне Легенда откройте раскрывающийся список рядом с категорией или свойством.
Воспользуйтесь следующей таблицей, чтобы выбрать стиль, который нужно изменить:
Чтобы изменить
Выберите
Цвет фона
Фон
Цвет контура
Росчерк
Цвет текста
Foreground
Значок
Значки
Отобразится окно Выбор набора цветов для выбора цвета (или значка).
В диалоговом окне Выбор набора цветов выполните одно из следующих действий.
Чтобы применить
Выполните следующие действия
Палитру цветов (или значков)
Откройте список Выбор палитры (или значков). Выберите палитру цветов (или значков).
Чтобы вернуть цвет (или значок) по умолчанию, в списке Выбор палитры (значков) выберите Нет.
Определенный цвет (или значок)
Откройте список значений категорий или свойств. Выберите цвет (или значок).
Примечание
Стили можно изменить, удалить или временно отключить в поле Условные обозначения.См. раздел Изменение поля "Легенда".
Применение к ссылкам с определенной категорией или свойством предопределенного цвета или значка
Если окно Легенда не отображается, откройте контекстное меню диаграммы. Щелкните Показать легенду.
Проверьте отображаются ли категория или свойство в списке в поле Условные обозначения.
Если список не содержит категорию или свойство, щелкните + в окне Легенда, Категория ссылки или Свойство ссылки и выберите категорию или свойство.
Категория или свойство отобразится в окне Легенда.
Примечание
Чтобы создать и присвоить ссылке категорию, см. раздел Присвоение категорий узлам и ссылкам.Чтобы создать и присвоить ссылке свойство, см. раздел Присвоение свойств узлам и ссылкам.
В окне Легенда откройте список рядом с категорией или свойством.
Щелкните Штрих, чтобы изменить контур и цвет наконечника стрелки связи.
Отобразится окно Выбор набора цветов для выбора цвета.
В окне Выбор набора цветов выполните одно из следующих действий.
Применить
Выполните следующие действия
Цветовая палитра
Откройте список Выбор палитры. Выберите палитру цветов.
Чтобы вернуть цвет по умолчанию, в списке Выбор палитры щелкните Нет.
Определенный цвет
Откройте список значений типов или свойств для выбора цвета.
Примечание
Стили можно изменить, удалить или временно отключить в поле Условные обозначения.См. раздел Изменение поля "Легенда".
Применение пользовательских стилей к узлам и ссылкам
Пользовательские стили можно применять к таким элементам:
единичным узлам и ссылкам;
группам узлов и ссылок;
группам узлов и ссылок на основании определенных условий.
Применение пользовательского стиля к единичному узлу
Откройте контекстное меню узла, стиль которого требуется настроить. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы и выделит элемент <Node/> для этого узла.
В элементе <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>
Применение пользовательского стиля к единичной ссылке
На диаграмме наведите указатель мыши на связь. Отобразится подсказка с указанием исходного и целевого узлов связи. (На клавиатуре нажимайте клавишу TAB до тех пор, пока не будет установлен фокус на связи.)
Откройте контекстное меню диаграммы. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы.
Найдите элемент <Link/>, содержащий имена исходного и целевого узлов.
В элементе <Link/> добавьте следующие атрибуты, чтобы настроить его стиль:
Чтобы изменить
Добавьте следующий атрибут
Цвет контура и наконечника стрелки
Stroke="ColorNameOrHexadecimalValue"
Толщина контура
StrokeThickness="StrokeValue"
Стиль контура
StrokeDashArray="StrokeArrayValues"
Пример.
<Links> <Link Source="MyFirstNode" Target="MySecondNode" Background="Green" Stroke="#FF000000" StrokeDashArray="2,2"/> </Links>
Применение пользовательских стилей к группе узлов или ссылок
Присвойте узлам или ссылкам любые необходимые категории или свойства.
Совет
При наличии повторяющихся стилей во многих узлах или связях рекомендуется применить категорию к этим узлам или связям, а затем применить стиль к этой категории.Дополнительные сведения см. в разделе Присвоение категорий узлам и ссылкам и Присвоение свойств узлам и ссылкам.
Откройте контекстное меню поверхности диаграммы. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы.
Если элемент <Styles></Styles> не существует, добавьте его под элементом <DirectedGraph></DirectedGraph> за элементом <Links></Links>.
В элементе <Styles></Styles> под элементом <Style/> и укажите следующие атрибуты:
TargetType="Node | Link | Graph"
GroupLabel="NameInLegendBox"
ValueLabel="NameInStylePickerBox"
Чтобы применить пользовательский стиль ко всем типам целевого объекта не следует использовать это условие.
Применение условного стиля к группам узлов или ссылок
В элементе <Style/> добавьте элемент <Condition/>, который содержит атрибут Expression, чтобы указать выражение, возвращающее логическое значение.
Пример.
<Condition Expression="MyCategory"/>
— или —
<Condition Expression="MyCategory > 100"/>
— или —
<Condition Expression="HasCategory('MyCategory')"/>
Это выражение использует следующий синтаксис "Формы Бэкуса-Наура" (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> ::= идентификатор
<MethodArgs> ::= <Expression> | <Expression> "," <MethodArgs> | <empty>
<Identifier> ::= [^. ]*
<Literal> ::= строковый литерал в одинарных или двойных кавычках
<Number> ::= строка цифр с дополнительной десятичной запятой
Можно указать несколько элементов <Condition/> со значением true, чтобы применить стиль.
В следующей строке, после элемента <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.
Visual Studio откроет DGML-файл диаграммы и выделит элемент <Node/> для этого узла.
В элементе <Node/> укажите имя свойства и его значение. Например
<Nodes> <Node Id="MyNode" MyPropertyName="PropertyValue" /> </Nodes>
Добавьте элемент <Property/> в раздел <Properties>, чтобы указать атрибуты, такие как видимое имя и тип данных:
<Properties> <Property Id="MyPropertyName" Label="My Property" DataType="System.DataType"/> </Properties>
Присвоение свойства ссылке
На диаграмме наведите указатель мыши на связь. Отобразится подсказка с указанием исходного и целевого узлов связи. (На клавиатуре нажимайте клавишу TAB до тех пор, пока не будет установлен фокус на связи.)
Откройте контекстное меню диаграммы. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы.
Найдите элемент <Link/>, содержащий имена исходного и целевого узлов.
В элементе <Node/> укажите имя свойства и его значение. Например
<Links> <Link Source="MyFirstNode" Target="MySecondNode" MyPropertyName="PropertyValue" /> </Links>
Добавьте элемент <Property/> в раздел <Properties>, чтобы указать атрибуты, такие как видимое имя и тип данных:
<Properties> <Property Id="MyPropertyName" Label="My Property Name" DataType="System.DataType"/> </Properties>
Присвоение категорий узлам и ссылкам
Организовать узлы можно присвоив им категории. Например, можно выбрать узлы из определенных категорий для их группирования, изменения стиля или скрытия. Можно выделить ссылки с определенными категориями. Дополнительные сведения см. в следующих подразделах:
Группирование узлов
Изменение стиля узлов и ссылок
Скрытие и отображение узлов
Присвоение узлу категории
- Чтобы присвоить предопределенную категорию, например Категория 1, откройте контекстное меню узла. Щелкните Задать категории и выберите предопределенную категорию.
– либо –
Создание и присвоение пользовательской категории:
- Выберите узел, который требуется классифицировать. Нажмите клавишу F4, чтобы открыть окно Свойства. Введите имя категории в свойстве Новая категория узла. Нажмите клавишу ВВОД.
– либо –
Откройте контекстное меню узла. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы и выделит элемент <Node/> для этого узла.
В элементе <Node/> добавьте атрибут Category, чтобы указать имя категории. Например
<Nodes> <Node Id="MyNode" Category="MyCategory" /> </Nodes>
Добавьте элемент <Category/> в раздел <Categories>, чтобы можно было воспользоваться атрибутом Label для определения отображения текста для категории:
<Categories> <Category Id="MyCategory" Label="My Category" /> </Categories>
Присвоение категории ссылке
На графе наведите указатель мыши на ссылку, чтобы увидеть подсказку и определить исходный и целевой узлы ссылки. (На клавиатуре нажимайте клавишу TAB до тех пор, пока не будет установлен фокус на связи.)
Откройте контекстное меню диаграммы. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы.
Найдите элемент <Link/>, содержащий имена исходного и целевого узлов.
В элементе <Link/> добавьте атрибут Category, чтобы указать имя категории. Например
<Links> <Link Source="MyFirstNode" Target="MySecondNode" Category="MyCategory" </Links>
Добавьте элемент <Category/> в раздел <Categories>, чтобы можно было воспользоваться атрибутом 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 наследует атрибут Background MyParentCategory.
Связывание элементов с узлами и связями
Чтобы связать элементы, такие как документы или URL-адреса, с узлом или связью, можно изменить DGML-файл диаграммы и добавить атрибут Reference в элемент <Node/> узла или элемент <Link/> связи. Затем из этого узла или связи можно открывать и просматривать содержимое. Атрибут Reference задает путь к данному содержимому. Этот путь может относится к расположению DGML-файла или к абсолютному пути.
Предупреждение
При использовании относительных путей и перемещении DGML-файла в другое расположение эти пути становятся недопустимыми.При попытке открыть и просмотреть связанное содержимое отображается сообщение об ошибке, уведомляющее о том, что не удается просмотреть содержимое.
Например, можно попробовать связать следующие элементы:
Для описания изменения класса можно связать URL-адрес рабочего элемента, документа или другого DGML-файла с узлом класса.
Схему слоев можно связать с узлом группы, который представляет слой в логической архитектуре программного обеспечения.
Схему компонентов можно связать с узлом интерфейса, чтобы показать больше сведений о компоненте, представляемом этим интерфейсом.
Свяжите узел с рабочим элементом или ошибкой Team Foundation Server либо с другой информацией, касающейся узла.
Связывание элемента с узлом
На диаграмме откройте контекстное меню узла. Щелкните Перейти и выберите DGML.
Visual Studio откроет DGML-файл диаграммы и выделит элемент <Node/> для этого узла.
Выполните одну из задач, представленных в следующей таблице:
Чтобы связать
Выполните следующие действия
Один элемент
В элементе <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>
Несколько элементов
В элементе <Node/> или <Link/> добавьте новый атрибут, чтобы указать расположение каждой ссылки.
В разделе <Properties>:
Добавьте элемент <Property/> для каждого нового типа ссылки.
Присвойте атрибуту Id имя нового атрибута ссылки.
Добавьте атрибут IsReference и задайте для него значение True, чтобы отобразить ссылку в контекстном меню Перейти элемента.
С помощью атрибута 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>
Воспользуйтесь атрибутом ReferenceTemplate, чтобы указать общую строку, такую как URL-адрес, используемую несколькими ссылками, вместо повторения этой строки в ссылке.
Атрибут ReferenceTemplate указывает заполнитель для значения ссылки. В следующем примере заполнитель {0} в атрибуте ReferenceTemplate будет заменен значениями атрибутов MyFirstReference и MySecondReference в элементе <Node/> для выполнения полного пути:
<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>
Чтобы просмотреть элементы, на которые указывают ссылки, или элементы из диаграммы, откройте контекстное меню узла или связи. Щелкните Перейти и выберите элемент.
Создание псевдонимов для часто используемых путей
Замена часто используемых путей псевдонимами уменьшает размер DGML-файла и время, требуемое на загрузку или сохранение файла. Для создания псевдонима добавьте раздел <Paths></Paths> в конце DGML-файла. В этом разделе добавьте элемент <Path/> для того, чтобы определить псевдоним для пути.
<Paths> <Path Id="MyPathAlias" Value="C:\...\..." /> </Paths>
Чтобы сослаться на псевдоним из элемента DGML-файла, следует окружить значение Id элемента <Path/> знаком доллара ($) и круглыми скобками (()).
<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 унаследовала атрибут Stroke от категории PassedTest. См. подраздел "Создание иерархических категорий" раздела Присвоение категорий узлам и связям.
Категории также предоставляют базовый шаблон поведения, который определяет отображение узлов и ссылок в графе. См. раздел Применение пользовательских стилей к узлам и связям.
<?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>
См. также
Основные понятия