Изменение и настройка графов зависимостей

Можно изменить графы зависимостей, не затрагивая основного кода.Это полезно, когда нужно сосредоточить внимание на ключевых позициях или распространить идеи о коде.Например, для выбора интересующих областей, можно выбрать узлы и отфильтровать их изменение стиля узлов и ссылок или скрывает узлов, удаления и организация узлов с использованием свойства, категории или группы.

Граф можно настроить и позже, отредактировав DGML-файл.Например, можно отредактировать DGML-элементы в файле, чтобы указать пользовательские стили, присвоить узлам и ссылкам свойства и категории, или связать узлы с элементами, такими как документы, URL-адреса или другие DGML-файлы.

ПримечаниеПримечание

Visual Studio очищает любые не используемые DGML элементы и атрибуты, удаляя их при сохранении DGML-файла.Он также создает элементы узла автоматически при ручном добавить новые связи. При сохранении dgml-файла все атрибуты, добавленных к элементу, потребуется изменить порядок в алфавитном порядке.Дополнительные сведения о DGML-элементах см. в разделе Основные сведения о языке разметки направленных графов (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>

Отображение или скрытие ссылок

Целевой тип

На панели инструментов графа, откройте список Изменение способа отображения связей на графе или откройте контекстное меню графа. Выберите:

Одновременное отображение связей между группами

Показать все ссылки между группами

Это позволяет скрыть совокупные связи между группами.

Показать только связи между группами в выбранных узлах

Показать ссылки между группами в выбранных узлах

Одновременное сокрытие связей между группами

Скрыть ссылки между группами

Скрытие всех ссылок (или отображение всех ссылок)

Скрыть все ссылки

Чтобы показать все связи, выберите Скрыть все связи повторно, что отключит этот режим.

Добавить узлы и ссылки

Добавление нового неопределенный узел

Выполните следующие действия

В текущую позицию указателя

Выделите место на диаграмме, куда поместить новый узел.Нажмите клавишу Вставить.

Такой связи с выбранным узлом

  1. Выберите исходный узел.

    Панель инструментов, запускается что бы появиться над узлом.

    Панель инструментов графа зависимостей

  2. На панели инструментов выберите Создать узел с той же категорией что и этот и добавляет новую ссылку на негоПанель инструментов графа — создание узла со ссылкой.

  3. Выберите размещение в графе, чтобы поместить новый узел.

    (Клавиатура:Нажимайте клавишу TAB до узла, из которого нужно связать и имеет фокус, а затем нажать Alt+Вставить).

Который ссылается на существующий узел с текущим фокусом

Нажмите клавишу TAB до узла, с которым нужно связать и имеет фокус.Нажмите клавишу Alt+Shift+Вставить.

Добавление узлов для

Выполните следующие действия

Элементы в решении

  1. Выберите элемент в Обозревателе решений.Используйте поле поиска обозревателя решений или просмотрите решение.Сведения о просмотре кода в обозревателе решений см. в Просмотр структуры кода.

    СоветСовет
    Чтобы найти элементы, имеющие зависимости в типе или члене, открыть контекстное меню для типа или члена в Обозреватель решений.Выберите связь, процент пользователь.Обозреватель решений отображаются только те элементы с определенными зависимостями.
  2. Перетащите интересующие элементы в область графа.

    Включать иерархию родительского контейнера для выбранных элементов при использовании Visual Studio Ultimate, нажав и удерживая клавишу ключ CTRL при перетаскивании элементов к диаграмме.

    - или -

    На Обозреватель решений открыть список Создать новый документ диаграммы….Выберите Добавить в активный граф зависимостей.Чтобы добавить иерархии родительского контейнера, выберите Add to Active Dependency Graph with Containment Hierarchy.

    Visual Studio добавляет узлов элементов верхнего уровня в выделенном фрагменте кода.Чтобы просмотреть если узел содержит элементов, наведите указатель мыши на основе узла, чтобы шеврон (^) появился.Выберите шеврон (^), чтобы развернуть узел.Для разворачивания всех узлов, открыть контекстное меню для диаграммы.Выберите Группа, Развернуть все.

    ПримечаниеПримечание
    Эта команда недоступна, когда разворачивание всех групп создает неиспользуемый граф или служит причиной проблем с памятью.

Элементы, относящиеся к узлам на диаграмме

Откройте контекстное меню узла.Выберите Показать и интересующий тип отношения.

Для сборки выберите команду:

  • Сборки: Добавление сборки, этот ссылки на сборку.Внешние сборки отображаются в группу Внешние.

  • Ссылки на сборки: Добавление сборок в решении, которые ссылаются на эту сборку.

Для класса выберите команду:

  • Базовые типы: Для класса добавьте базовый класс и реализованные интерфейсы.

    Для интерфейса, добавить базовые интерфейсы.

  • Производные типы: Для класса добавьте в производных классах.

    Для интерфейса добавьте производные интерфейсы и реализующие классы или структуры.

  • Все базовые типы: Добавьте иерархию базового класса или интерфейса рекурсивно.

  • Все производные типы: Для класса добавьте все производные классы рекурсивно.

    Для интерфейса, добавить рекурсивно все производные интерфейсы и реализующие классы или структуры.

  • Иерархия контейнеров: Добавьте иерархию родительского контейнера.

  • Используемые типы: Добавьте все классы и их члены, этот класс используется.

  • Используемые типами: Добавьте все классы и их члены, которые использует этот класс .

Для метода выберите:

  • Иерархия контейнеров: Добавьте иерархию родительского контейнера.

  • Вызываемый Метод: Добавьте методы, этот метод вызывает метод.

  • Вызываемые Методом: Добавьте методы, которые вызывает этот метод.

  • Переопределенный метод является абстрактным методом в базовых типах: Для метода, который переопределяет другие методы или реализует метод интерфейса, добавьте все абстрактные или виртуальные методы в базовых классах, которые переопределены и, если таковые имеются, метода интерфейса, который реализован.

  • Ссылочные поля: Добавьте ссылки на поля для данного метода.

Для поля выберите:

  • Иерархия контейнеров: Добавьте иерархию родительского контейнера.

  • Ссылки на методы: Добавьте методы, которые ссылаются на это поле.

Компилированные сборки .NET (.dll или .exe) или бинарный

Используйте Обозреватель архитектуры для поиска и перетаскивания элементов и отношений в графе.

Добавление связи между существующими узлами

  1. Выберите исходный узел.

    Панель инструментов, запускается что бы появиться над узлом.

    Панель инструментов графа зависимостей

  2. На панели управления выберите Создать новую ссылку из этого узла с любым узлом на который вы кликнете следующимПанель инструментов графа — создание ссылки.Выберите целевой узел.

    Ссылка появляется между двумя узлами.

Добавление комментариев к графу.

  1. Выберите узел, где необходимо добавить связанный комментарий.

    Панель инструментов, запускается что бы появиться над узлом.

    Панель инструментов графа зависимостей

  2. На панели инструментов выберите Создание нового узла комментария с новой ссылкой на выбранный узелПанель инструментов графа — создание комментария со ссылкой.

  3. Введите здесь свои комментарии.Чтобы ввести на новой строке, нажмите клавишу SHIFT+Ввод.

Удаление узлов

Можно удалять узлы из графа не затрагивая исходный код.Для удаления узлов выберите узел и нажмите клавишу Удалить ключ.При удалении узлов, их определения удалены из файла 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. Откройте контекстное меню для области графа.Выберите Группа, Включить группировку.

Удаление групп

Выберите группы, которые требуется удалить.Откройте контекстное меню для выделения.Выберите Группа, Удалить группу.

Перемещение узлов из родительских групп в прародительскую или вне группы, если прародительская группа не существует

Выберите узлы, которые требуется переместить.Откройте контекстное меню для выделения.Выберите Группа, Удаление из родительского элемента.

Для группирования узлов с помощью редактирования 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, который определяет дочерний узел.

    • Атрибут 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-файле.Чтобы изменить стиль узла или ссылки, см. раздел Изменение стиля узлов и ссылок.

  1. Откройте контекстное меню поверхности графа.Выберите Перейти, DGML.

    Visual Studio открывает DGML-файл графа.

  2. В элементе <DirectedGraph> добавьте следующие атрибуты, чтобы изменить его стиль:

    Чтобы изменить

    Добавьте следующий атрибут

    Цвет фона

    Background="ColorNameOrHexadecimalValue"

    Цвет границы

    Stroke="StrokeValue"

    Например:

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

Изменение стиля узлов и ссылок

Можно изменять значки на узлах, цвета узлов и ссылок.Можно воспользоваться предопределенными цветами и значками, либо указать свои, отредактировав DGML-файл графа.Смотреть Применение Пользовательских стилей к Узлам и Ссылкам.

Например, можно выбрать цвет подсветки узлов и ссылок в соответствии с категорией или свойством.Это позволит идентифицировать и сфокусироваться на определенной области графа.

Применение к узлу с определенной категорией или свойством предопределенного цвета или значка

  1. Если окно ЛЕГЕНДА не отображается, откройте контекстное меню для графа.Выберите Показать легенду.

  2. Проверьте, отображаются ли категория и свойство узла в поле Условные обозначения.

  3. Если список не содержит категорию или список, выберите + в окне ЛегендаКатегория узла или Свойство Узла, и затем выберите категорию или свойство.

    Свойство сейчас появляется в поле Условные обозначения.

    ПримечаниеПримечание

    Чтобы создать и присвоить узлу категорию, см. раздел Присвоение категорий узлам и ссылкам.Чтобы создать и присвоить узлу свойство, см. раздел Присвоение свойств узлам и ссылкам.

  4. В поле Условные обозначения откройте раскрывающийся список рядом с категорией или свойством.

  5. Воспользуйтесь следующей таблицей, чтобы выбрать стиль, который нужно изменить:

    Чтобы изменить

    Выберите

    Цвет фона

    Фон

    Цвет контура

    Росчерк

    Цвет текста

    Foreground

    Значок

    Значки

    Набор цветов появится окно выбора цвета (или значок).

  6. В диалоге Цветовая палитра активируйте один из следующих параметров:

    Применить

    Выполните следующие действия

    Палитра цветов (или значков

    Открыть список Выбор цвета (или иконка) УСТАНОВИТЬ список.Выберите набор цветов (или значков).

    Чтобы вернуть цвет (или значок) по умолчанию, в раскрывающемся списке Выбор палитры цветов (значков) выберите Отсутствует.

    Определенный цвет (или значок)

    Откройте список категорий или значений свойств.Выберите цвет (или значок).

    ПримечаниеПримечание

    Стили можно изменить, удалить или временно отключить в поле Условные обозначения.Смотреть Изменение блока Условные обозначения.

Применение к ссылкам с определенной категорией или свойством предопределенного цвета или значка

  1. Если окно ЛЕГЕНДА не отображается, откройте контекстное меню для графа.Выберите Показать легенду.

  2. Проверьте отображаются ли категория или свойство в списке в поле Условные обозначения.

  3. Если список не содержит категорию или свойство, выберите Добавить в Условные Обозначения, Категория ссылки или Link Property, а затем выберите категорию или свойство.

    Свойство сейчас появляется в поле Условные обозначения.

    ПримечаниеПримечание

    Чтобы создать и присвоить ссылке категорию, см. раздел Присвоение категорий узлам и ссылкам.Чтобы создать и присвоить ссылке свойство, см. раздел Присвоение свойств узлам и ссылкам.

  4. В поле Условные обозначения откройте раскрывающийся список рядом с категорией или свойством.

  5. Выберите Росчерк пера чтобы изменить структуру взаимодействия и цвет с наконечником стрелки.

    Появится окно Набор цветов для выбора цвета.

  6. В поле Цветовая палитра активируйте один из следующих параметров:

    Применить

    Выполните следующие действия

    Цветовая палитра

    Открыть список Выбор цветазадать список.Выберите набор цветов.

    Чтобы вернуть цвет по умолчанию, в раскрывающемся списке Выбор цветовой палитры выберите Отсутствует.

    Определенный цвет

    Откройте раскрывающийся список значений свойства для выбора цвета.

    ПримечаниеПримечание

    Стили можно изменить, удалить или временно отключить в поле Условные обозначения.Смотреть Изменение блока Условные обозначения.

Ee842619.collapse_all(ru-ru,VS.110).gifПрименение пользовательских стилей к узлам и ссылкам

Пользовательские стили можно применять к таким элементам:

  • единичным узлам и ссылкам;

  • группам узлов и ссылок;

  • группам узлов и ссылок на основании определенных условий.

Применение пользовательского стиля к единичному узлу

  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. На диаграмме, наведите указатель мыши над связью.Подсказка появляется и указывается узел источника и целевого объекта ссылки.(Клавиатура: НажмитеВкладка пока не будет выделена ссылка.)

  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/> добавьте элемент <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> ::= Identifier

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

    <Identifier> ::= [^.]*

    <Literal> ::= строковый литерал единичные или двойные кавычки

    <Number> ::= строка цифр с дополнительной десятичной запятой

    Можно определить несколько элементов <Condition/>, которые должны выполняться применение стиля.

  2. В следующей строке, после элемента <Condition/>, добавьте один или несколько элементов <Setter/>, чтобы указать атрибут Property и фиксированный атрибут Value или вычисляемый атрибут Expression, чтобы применить к графу, узлам или ссылкам, отвечающим условию.

    Например:

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

Завершенным, простым примером является следующее условие, которое указывает, что узел отображается зеленым или красным цветом в зависимости от значения его категории PassedTrue или False:

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="http://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="http://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, установите для свойства Background оранжевый оттенок на основании значения свойства Coverage.

  3. В противном случае установите для свойства Background оттенок красного на основании значения свойства Coverage.

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="http://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="http://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>

Ee842619.collapse_all(ru-ru,VS.110).gifИзменение поля "Условные обозначения"

Стили можно изменить, удалить или временно отключить в поле Условные обозначения:

  1. Открыть контекстное меню для стиля в окне ЛЕГЕНДА.

  2. Выполните одну из следующих задач:

    Целевой тип

    Выберите

    Перемещение стиля вверх

    Вверх

    Перемещение элемента вниз

    Вниз

    Удаление элемента

    Удаление

    Отключить элемент

    Отключить

    Повторно включить элемент

    Включить

Копирование стилей из одного графа в другой

  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. На диаграмме, наведите указатель мыши над связью.Подсказка появляется и указывается узел источника и целевого объекта ссылки.(Клавиатуры: нажмите клавишу Вкладка до появления фокуса на ссылке.)

  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, открыть контекстное меню для узла.Выберите Задать категории и предопределенная категория.

- или -

  • Создание и присвоение пользовательской категории:

    • Выберите узел, который требуется каталогизировать.Для открытия окна Properties нажмите клавишу F4.Введите имя категории в свойстве Новая категория узла.Нажмите клавишу ВВОД.

    - или -

    1. Откройте контекстное меню узла.Выберите Перейти, DGML.

      Visual Studio открывает DGML-файл графа и выделяет элемент <Node/> для этого узла.

    2. В элементе <Node/> добавьте атрибут Category, чтобы указать имя категории.Например:

      <Nodes>
         <Node Id="MyNode" Category="MyCategory" />
      </Nodes>
      
    3. Добавьте элемент <Category/> в раздел <Categories>, чтобы можно было воспользоваться атрибутом Label для определения отображения текста для категории:

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

Присвоение категории ссылке

  1. На графе наведите указатель мыши на ссылку, чтобы увидеть подсказку и определить исходный и целевой узлы ссылки.(Клавиатуры: нажмите клавишу Вкладка до появления фокуса на ссылке.)

  2. Откройте контекстное меню графа.Выберите Перейти, DGML.

    Visual Studio открывает DGML-файл графа.

  3. Найдите элемент <Link/>, содержащий имена исходного и целевого узла.

  4. В элементе <Link/> добавьте атрибут Category, чтобы указать имя категории.Например:

    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" Category="MyCategory"
    </Links>
    
  5. Добавьте элемент <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 наследует атрибут BackgroundMyParentCategory.

Связывание элементов к узлам и ссылкам

Элементы, такие как документы или URL-адреса, можно связывать с узлом посредством редактирования DGML-файла графа и добавления атрибута Reference в элемент <Node/> этого узла или для ссылки <Link/> .Затем из этого узла или ссылки в графе можно открыть и просмотреть содержимое.Атрибут Reference задает путь к данному содержимому.Этот путь может относится к расположению DGML-файла или к абсолютному пути.

Предупреждающее замечаниеВнимание

При использовании относительных путей и dgml-файл переместить в другое расположение, то эти пути больше не допускают.При попытке открыть и просмотреть связанного содержимого, возникает сообщение о том, что не удается просмотреть содержимое.

Например, можно попробовать связать следующие элементы:

  • Для описания изменения класса можно связать URL-адрес рабочего элемента, документа или другого DGML-файла с узлом класса.

  • Схему слоев можно связать с узлом группы, который представляет слой в логической архитектуре программного обеспечения.

  • Схему компонентов можно связать с узлом интерфейса, чтобы показать больше сведений о компоненте, представляемом этим интерфейсом.

  • Свяжите узел с рабочим элементом Team Foundation Server, ошибкой или другой информацией, касающейся узла.

Связывание элемента с узлом

  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>

    В графе имя узла отображается подчеркнутым.При открытии контекстное меню для узла или ссылки отображается контекстное меню Перейти, который содержит связанные элементы для выбора.

  3. Воспользуйтесь атрибутом 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>
    
  4. Чтобы просмотреть связанные элемент или элементы из графа, откройте контекстное меню для узла или ссылки.Выберите Перейти, а затем элемент.

Создание псевдонимов для часто используемых путей

Замена часто используемых путей псевдонимами уменьшает размер 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).Дополнительные сведения см. в разделе Просмотр и реорганизация графов зависимостей.

  • Title — имя графа.

  • ZoomLevel — уровень изначального масштабирования графа.Задает значение с плавающей запятой от 1 до 100%, или значение Fit, при котором граф масштабируется таким образом, чтобы целиком помещаться в окно.

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph Title="DrivingTest" Background="Blue" xmlns="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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>

См. также

Основные понятия

Визуализация зависимостей кода на графах зависимостей

Просмотр и реорганизация графов зависимостей