다음을 통해 공유


종속성 그래프 편집 및 사용자 지정

기본 코드에 영향을 주지 않고 종속성 그래프를 편집할 수 있습니다. 이 기능은 주요 항목에 중점을 두거나 코드에 대한 아이디어를 전달하려는 경우 유용합니다. 예를 들어, 관심 있는 영역에 강조 표시를 하려면 노드를 선택하고 필터링한 다음 노드와 링크의 스타일을 변경하고 노드를 숨기거나 삭제하고 속성, 범주 또는 그룹을 사용하여 노드를 구성할 수 있습니다.

그래프의 Directed Graph Markup Language(.dgml) 파일을 편집하여 그래프를 더욱 세부적으로 사용자 지정할 수 있습니다. 예를 들어, 요소를 편집하여 사용자 지정 스타일을 지정하고, 노드와 링크에 속성 및 범주를 할당하거나, 문서, URL 또는 다른 그래프 등의 항목에 노드를 링크할 수 있습니다.

참고

사용자가 .dgml 파일을 저장하면 Visual Studio에서 사용되지 않는 DGML 요소와 특성이 삭제됩니다.또한 수동으로 새 링크를 추가할 경우에도 자동으로 노드 요소가 생성됩니다..dgml 파일을 저장하면 사용자가 요소에 추가한 특성이 사전순으로 자동으로 재배열됩니다.DGML 요소에 대한 자세한 내용은 DGML(Directed Graph Markup Language) 이해를 참조하십시오.

요구 사항

항목 내용

  • 노드 또는 링크 선택

  • 노드 또는 링크 이름 바꾸기

  • 노드 및 링크 숨기기 또는 표시

  • 노드 및 링크 추가

  • 그래프에 설명 추가

  • 노드 삭제

  • 노드 그룹화

  • 그래프 병합

  • 그래프 스타일 변경

  • 노드 또는 링크 스타일 변경

  • 그래프 간에 스타일 복사

  • 노드 및 링크에 속성 할당

  • 노드 및 링크에 범주 할당

  • 노드 또는 링크에 항목 연결

  • 일반적으로 사용하는 경로에 대한 별칭 만들기

노드 또는 링크 선택

수행할 작업

수행할 단계

선택하지 않은 모든 노드 선택

선택한 노드에 대한 바로 가기 메뉴를 엽니다. 선택, 선택 항목 반전을 차례로 선택합니다.

선택한 항목에 링크할 다른 노드 선택

선택한 노드에 대한 바로 가기 메뉴를 엽니다. 선택과 다음 중 하나를 선택합니다.

  • 선택한 노드에 직접 연결되는 노드를 선택하려면 들어오는 종속성을 클릭합니다.

  • 선택한 노드에서 직접 링크되는 노드를 추가로 선택하려면 나가는 종속성을 클릭합니다.

  • 선택한 노드에서 양쪽으로 직접 연결되는 노드를 추가로 선택하려면 모두를 클릭합니다.

  • 선택한 노드와 양쪽으로 연결되는 모든 노드를 추가로 선택하려면 연결된 하위 그래프를 클릭합니다.

  • 선택한 노드의 모든 자식 노드를 추가로 선택하려면 자식을 선택합니다.

노드 또는 링크 이름 바꾸기

  • 노드 또는 링크를 선택합니다. F2 키를 누릅니다. 편집 상자가 나타나면 노드 또는 링크의 이름을 바꿉니다.

    레이블이 표시되면 경우 레이블을 선택합니다.

노드 및 링크 숨기기 또는 표시

노드를 숨기면 레이아웃 알고리즘에 참여하지 못합니다. 기본적으로 그룹 간 링크는 숨겨져 있습니다. 그룹 간 링크는 서로 다른 그룹에 있는 노드를 연결하는 개별 링크입니다. 그룹이 축소되어 있을 때 그래프에서는 모든 그룹 간 링크가 하나의 그룹 간 링크로 집계됩니다. 그룹을 확장하고 그룹 내의 노드를 선택하면 그룹 간 링크가 나타나고 해당 그룹 내의 종속성이 표시됩니다.

경고

Visual Studio Ultimate으로 만든 그래프를 Visual Studio Premium 또는 Visual Studio Professional 사용자와 공유하기 전에는 다른 사람에게 표시할 노드 또는 그룹 간 링크를 숨기기 취소하십시오.그렇지 않으면 해당 사용자가 해당 항목을 숨기기 취소할 수 없습니다.

노드를 숨기거나 표시하려면

수행할 작업

수행할 단계

선택한 노드 숨기기

  1. 숨길 노드를 선택합니다.

  2. 선택한 노드 또는 그래프에 대한 바로 가기 메뉴를 엽니다. 선택, 선택한 항목 숨기기를 클릭합니다.

선택하지 않은 노드 숨기기

  1. 계속해서 표시하려는 노드를 선택합니다.

  2. 선택한 노드 또는 그래프에 대한 바로 가기 메뉴를 엽니다. 선택, 선택되지 않은 항목 숨기기를 선택합니다.

숨겨진 노드 표시

  • 그룹 내의 모든 숨겨진 노드를 표시하려면 우선 그룹이 확장되어 있는지 확인하십시오. 그룹 왼쪽 상단 모퉁이의 자식 숨기기 취소 자식 숨기기 취소 아이콘를 선택합니다.

  • 숨겨진 모든 노드를 표시하려면 그래프에 대한 바로 가기 메뉴를 엽니다. 선택, 모두 숨기기 취소를 선택합니다.

.dgml 파일을 편집하여 노드 숨기기

  1. 그래프에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 그래프의 .dgml 파일이 열립니다.

  2. <Node/> 요소에서 다음 특성을 추가하여 노드를 숨깁니다.

    Visibility="Hidden"

    예를 들면 다음과 같습니다.

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

링크를 표시하거나 숨기려면

수행할 작업

그래프의 도구 모음에서 그래프에서 그룹 간 링크가 렌더링되는 방법 변경을 열거나 그래프 바로 가기 메뉴를 엽니다. 다음 중 하나를 선택합니다.

그룹 간 링크 항상 표시

그룹 간 링크 모두 표시

그룹 간 집계된 링크를 숨깁니다.

선택한 노드의 그룹 간 링크만 표시

선택한 노드에서 그룹 간 링크 표시

그룹 간 링크 항상 숨기기

그룹 간 링크 숨기기

모든 링크 숨기기(또는 모든 링크 표시)

모든 링크 숨기기

모든 링크를 표시하려면 모든 링크 숨기기를 다시 클릭하여 이 모드를 해제합니다.

노드 및 링크 추가

정의되지 않은 새 노드 추가

수행할 단계

현재 포인터 위치에서

그래프에서 새 노드를 배치할 위치를 선택합니다. Insert 키를 누릅니다.

선택한 노드에 연결됩니다.

  1. 소스 노드를 선택합니다

    노드 위에 도구 모음이 표시되기 시작합니다.

    종속성 그래프 도구 모음

  2. 도구 모음에서 이 노드와 범주가 같은 새 노드를 만들고 이 노드에 새 링크를 추가합니다. 그래프 도구 모음 - 링크가 포함된 노드 만들기를 클릭합니다.

  3. 그래프에서 새 노드를 추가할 위치를 선택합니다.

    (키보드: Tab 키를 눌러 링크하려는 노드에 포커스가 오도록 한 다음 Alt+Insert 키를 누릅니다.)

기존 노드가 현재 포커스에 링크됩니다.

Tab 키를 눌러 링크하려는 노드에 포커스가 오도록 합니다. Alt+Shift+Insert 키를 누릅니다.

다음에 대한 노드를 추가하려면

수행할 단계

솔루션의 항목

  1. 솔루션 탐색기에서 항목을 찾습니다. 솔루션 탐색기의 검색 상자를 이용하거나 솔루션을 찾아봅니다. 솔루션 탐색기에서 코드를 찾아보려면 코드 구조 보기를 참조하십시오.

    형식이나 멤버에 대한 종속성이 있는 항목을 찾으려면 솔루션 탐색기에서 형식이나 멤버에 대한 바로 가기 메뉴를 엽니다.확인하려는 관계를 선택합니다.

    솔루션 탐색기에는 지정된 종속성이 있는 항목만 표시됩니다.

  2. 관심 항목을 그래프 영역으로 끌어다 놓습니다.

    Visual Studio Ultimate을 사용하는 경우 선택한 항목에 대한 부모 컨테이너 계층을 포함하려면 Ctrl 키를 누른 상태에서 항목을 그래프로 끌어다 놓습니다.

    - 또는 -

    솔루션 탐색기에서 새 그래프 문서 만들기를 선택합니다. 활성 종속성 그래프에 추가를 선택합니다. 부모 컨테이너 계층 구조를 추가하려면 포함 계층 구조를 사용하여 활성 종속성 그래프에 추가를 선택합니다.

    선택 영역의 최상위 코드 항목에 대한 노드가 추가됩니다. 노드에 항목이 포함되었는지 확인하려면 노드 위로 마우스 포인터를 이동하여 펼침 단추(^)가 나타나도록 합니다. 펼침 단추(^)를 선택하여 노드를 확장합니다. 모든 노드를 확장하려면 그래프에 대한 바로 가기 메뉴를 엽니다. 그룹, 모두 확장을 차례로 선택합니다.

    참고

    이 명령은 모든 그룹을 확장할 때 사용할 수 없는 그래프 또는 메모리 문제가 발생하는 경우 사용할 수 없습니다.

그래프의 노드와 관련 있는 항목

노드에 대한 바로 가기 메뉴를 엽니다. 표시와 확인하려는 관계의 종류를 차례로 선택합니다.

어셈블리인 경우 다음을 선택합니다.

  • 참조된 어셈블리: 이 어셈블리가 참조하는 어셈블리를 추가합니다. 외부 그룹에 외부 어셈블리가 나타납니다.

  • 어셈블리 참조: 솔루션에 이 어셈블리를 참조하는 어셈블리를 추가합니다.

기본 클래스의 경우 다음을 선택합니다.

  • 기본 형식: 클래스의 경우 기본 클래스와 구현된 인터페이스를 추가합니다.

    인터페이스의 경우 기본 인터페이스를 추가합니다.

  • 파생 형식: 클래스의 경우 파생 클래스를 추가합니다.

    인터페이스의 경우 파생된 인터페이스와 구현 클래스 또는 구조체를 추가합니다.

  • 모든 기본 형식: 기본 클래스 또는 인터페이스 계층 구조를 재귀적으로 추가합니다.

  • 모든 파생 형식: 클래스의 경우 모든 파생 클래스를 재귀적으로 추가합니다.

    인터페이스의 경우 파생된 모든 인터페이스와 구현 클래스 또는 구조체를 재귀적으로 추가합니다.

  • 포함 계층 구조: 부모 컨테이너 계층 구조를 추가합니다.

  • 사용된 형식: 이 클래스가 사용하는 모든 클래스와 해당 멤버를 추가합니다.

  • 사용되는 형식: 이 클래스를 사용하는 모든 클래스와 해당 멤버를 추가합니다.

메서드인 경우 다음을 선택합니다.

  • 포함 계층 구조: 부모 컨테이너 계층 구조를 추가합니다.

  • 호출된 메서드: 이 메서드가 호출하는 메서드를 추가합니다.

  • 호출 메서드: 이 메서드를 호출하는 메서드를 추가합니다.

  • 기본 형식에서 재정의된 메서드: 다른 메서드를 재정의하거나 인터페이스 메서드를 구현하는 메서드의 경우 재정의된 기본 클래스에 모든 추상 메서드 또는 가상 메서드를 추가하고, 구현된 인터페이스 메서드를 추가합니다(있는 경우).

  • 참조된 필드: 이 메서드가 참조하는 필드를 추가합니다.

필드의 경우 다음을 선택합니다.

  • 포함 계층 구조: 부모 컨테이너 계층 구조를 추가합니다.

  • 참조 메서드: 이 필드를 참조하는 메서드를 추가합니다.

컴파일된 .NET 어셈블리(.dll 또는 .exe) 또는 이진 파일

아키텍처 탐색기를 사용하여 항목과 관계를 검색하고 그래프로 끌어 옵니다.

기존 노드 사이의 연결을 추가하려면

  1. 소스 노드를 선택합니다

    노드 위에 도구 모음이 표시되기 시작합니다.

    종속성 그래프 도구 모음

  2. 도구 모음에서 이 노드에서 다음에 클릭하는 노드로 연결되는 새 링크를 만듭니다. 그래프 도구 모음 - 연결 만들기를 선택합니다. 대상 노드를 선택합니다.

    두 노드 사이에 링크가 나타납니다.

그래프에 설명 추가

  1. 링크된 주석을 추가할 노드를 선택합니다.

    노드 위에 도구 모음이 표시되기 시작합니다.

    종속성 그래프 도구 모음

  2. 도구 모음에서 선택한 노드에 대한 새 링크가 있는 새 주석 노드를 만듭니다. 그래프 도구 모음 - 링크가 포함된 주석 만들기를 선택합니다.

  3. 주석을 입력합니다. 새로운 줄을 입력하려면 Shift+Enter 키를 누릅니다.

노드 삭제

기본 코드에 영향을 주지 않고도 그래프에서 노드를 삭제할 수 있습니다. 노드를 삭제하려면 노드를 선택한 다음 Delete 키를 누릅니다. 노드를 삭제하면 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. 아키텍처 메뉴에서 Windows, 아키텍처 탐색기를 차례로 선택합니다.

  3. 아키텍처 탐색기파일 시스템에서 파일 선택을 선택합니다.

  4. 다음 열에서 저장된 .dgml 파일을 선택합니다.

  5. 아키텍처 탐색기를 사용하여 그룹화할 모든 노드를 찾아 선택합니다.

    아키텍처 탐색기로 코드 찾기를 참조하십시오.

  6. 현재 열의 오른쪽에서 축소된 작업 열을 선택하여 확장합니다. (키보드: 축소된 작업 열이 확장될 때까지 Tab 키를 눌러 포커스를 이동합니다.)

    참고

    작업 열 위로 포인터를 이동하면 작업 열이 강조 표시된 상태로 나타납니다.

  7. 작업 열의 그룹화에서 속성별 그룹화를 클릭합니다. (키보드: Tab 키를 눌러 포커스를 이동한 다음 화살표 키를 사용하여 속성별 그룹화 명령을 선택합니다.)

  8. 다음 열에서 그룹으로 사용할 속성을 선택합니다.

    다음 열이 나타나고 사용 가능한 속성 값이 표시됩니다.

  9. 다음 열에서 속성 값 그룹을 그래프로 끌어 옵니다.

  10. 그래프 영역에 대한 바로 가기 메뉴를 엽니다. 그룹, 그룹화 설정을 차례로 선택합니다.

그룹 제거

제거할 그룹을 하나 이상 선택합니다. 선택한 항목의 바로 가기 메뉴를 엽니다. 그룹, 그룹 제거를 차례로 선택합니다.

노드를 부모 그룹에서 제거하여 부모의 상위 그룹 또는 그룹 외부(부모의 상위 그룹이 없는 경우)로 이동

이동할 노드를 선택합니다. 선택한 항목의 바로 가기 메뉴를 엽니다. 그룹, 부모에서 제거를 차례로 선택합니다.

그래프의 .dgml 파일을 편집하여 노드를 그룹화하려면

  1. 노드를 그룹으로 변환하려면 노드에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 .dgml 파일이 열리고 해당 노드에 대한 <Node/> 요소가 강조 표시됩니다.

    또는

    새 그룹을 추가하려면

    1. 그래프의 빈 영역에 대해 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    2. <Nodes> 섹션 아래에 새 <Node/> 요소를 추가합니다.

  2. <Node/> 요소에 Group 특성을 추가하여 그룹을 확장된 상태로 표시할지 축소된 상태로 표시할지를 지정합니다. 예를 들면 다음과 같습니다.

    <Nodes>
       <Node Id="MyFirstGroup" Group="Expanded" />
       <Node Id="MySecondGroup" Group="Collapsed" />
    </Nodes>
    
  3. <Links> 섹션에서 그룹 노드와 해당 자식 노드 간의 각 관계에 대해 다음 특성을 가진 <Link/> 요소가 있는지 확인합니다.

    • 그룹 노드를 지정하는 Source 특성

    • 자식 노드를 지정하는 Target 특성

    • 그룹 노드와 해당 자식 노드 간의 Contains 관계를 지정하는 Category 특성

    예를 들면 다음과 같습니다.

    <Links>
       <Link Category="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildOne" />
       <Link Category ="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildTwo" />
       <Link Category ="Contains" Source="MySecondNewGroup" Target="SecondGroupChildOne" />
       <Link Category="Contains" Source="MySecondNewGroup" Target="SecondGroupChildTwo" />
    </Links>
    

    Category 특성에 대한 자세한 내용은 노드 및 링크에 범주 할당을 참조하십시오.

그래프 병합

그래프 사이의 노드를 복사하거나 붙여서 병합할 수 있습니다. 노드 식별자가 일치하는 경우 노드 붙여넣기는 병합 작업처럼 작동합니다. 이 작업을 쉽게 하려면 각 어셈블리 또는 이진 파일의 전체 경로가 병합할 각 그래프에 동일해지도록 시각화할 모든 어셈블리 또는 이진 파일을 동일한 폴더에 저장합니다.

또한 다음 단계 중 하나를 수행하여 시각화하려는 어셈블리 또는 이진 파일에 대한 하나의 그래프를 만들 수 있습니다.

  • 어셈블리 또는 이진 파일을 동일한 그래프로 끌어 옵니다.

    또는

  • 아키텍처 탐색기를 엽니다. 파일 시스템에서 파일 선택을 선택하여 어셈블리 또는 이진 파일을 찾아보거나 선택하고 엽니다 그래프를 더 자세히 만들려면 시각화하려는 특정 항목을 선택합니다. 선택을 마쳤으면 아키텍처 탐색기의 도구모음에서 선택한 모든 노드에서 새 그래프 문서 만들기를 선택합니다.

그래프 스타일 변경

그래프의 .dgml 파일을 편집하여 그래프의 배경색과 테두리 색을 변경할 수 있습니다. 노드 및 링크의 스타일을 변경하려면 노드 및 링크 스타일 변경을 참조하십시오.

  1. 그래프 영역에서 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 그래프의 .dgml 파일이 열립니다.

  2. <DirectedGraph> 요소에 다음 특성을 추가하여 그래프 스타일을 변경합니다.

    변경 대상

    추가할 특성

    배경색

    Background="ColorNameOrHexadecimalValue"

    테두리 색

    Stroke="StrokeValue"

    예를 들면 다음과 같습니다.

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

노드 및 링크 스타일 변경

노드의 아이콘과 노드 및 링크의 색을 변경할 수 있습니다. 미리 정의된 색 및 아이콘을 사용하거나, 그래프의 .dgml 파일을 편집하여 사용자 지정 색 및 아이콘을 지정할 수 있습니다. 노드 및 링크에 사용자 지정 스타일 적용을 참조하십시오.

예를 들어 특정 범주 또는 속성을 가진 노드 및 링크를 강조 표시하기 위한 색을 선택할 수 있습니다. 이렇게 하면 그래프의 특정 영역을 식별하여 여기에 초점을 맞출 수 있습니다.

특정 범주 또는 속성을 가진 노드에 미리 정의된 색 또는 아이콘을 적용하려면

  1. 범례 상자가 표시되지 않을 경우 그래프에 대한 바로 가기 메뉴를 엽니다. 범례 표시를 선택합니다.

  2. 범례 상자에서 원하는 노드 범주 또는 속성이 목록에 나타나는지 확인합니다.

  3. 목록에 범주 또는 속성이 포함되어 있지 않으면 범례 상자 안의 **+**를 선택하고 노드 범주 또는 노드 속성을 클릭한 다음 해당 범주 또는 속성을 선택합니다.

    이제 범주 또는 속성이 범례 상자에 나타납니다.

    참고

    범주를 만들어 노드에 할당하려면 노드 및 링크에 범주 할당을 참조하십시오.속성을 만들어 노드에 할당하려면 노드 및 링크에 속성 할당을 참조하십시오.

  4. 범례 상자에서 해당 범주 또는 속성 옆의 드롭다운 목록을 클릭합니다.

  5. 다음 표에 따라 변경할 스타일을 선택합니다.

    변경 대상

    Choose

    배경색

    배경

    윤곽선 색

    스트로크

    텍스트 색

    Foreground

    아이콘

    아이콘

    색(또는 아이콘)을 선택할 수 있는 색 집합 선택 상자가 나타납니다.

  6. 색 집합 선택 대화 상자에서 다음 중 하나를 선택합니다.

    적용할 내용

    수행할 단계

    색(또는 아이콘) 집합

    (또는 아이콘) 집합 선택 목록을 엽니다. 색(또는 아이콘) 집합을 선택합니다.

    기본 색(또는 아이콘)으로 되돌리려면 (아이콘) 집합 선택 목록에서 없음을 클릭합니다.

    특정 색(또는 아이콘)

    범주 또는 속성 값 목록을 엽니다. 색(또는 아이콘)을 선택 합니다.

    참고

    범례 상자의 스타일을 다시 정렬하거나, 삭제하거나, 일시적으로 비활성화할 수 있습니다.범례 상자 수정을 참조하십시오.

특정 범주 또는 속성을 가진 링크에 미리 정의된 색을 적용하려면

  1. 범례 상자가 표시되지 않을 경우 그래프에 대한 바로 가기 메뉴를 엽니다. 범례 표시를 선택합니다.

  2. 범례 상자에서 원하는 범주 또는 속성이 목록에 나타나는지 확인합니다.

  3. 목록에 원하는 범주 또는 속성이 포함되어 있지 않으면 범례 상자 안의 **+**를 선택하고 링크 범주 또는 링크 속성을 클릭한 다음 해당 범주 또는 속성을 선택합니다.

    이제 범주 또는 속성이 범례 상자에 나타납니다.

    참고

    범주를 만들어 링크에 할당하려면 노드 및 링크에 범주 할당을 참조하십시오.속성을 만들어 링크에 할당하려면 노드 및 링크에 속성 할당을 참조하십시오.

  4. 범례 상자에서 해당 범주 또는 속성 옆의 목록을 엽니다.

  5. 스트로크를 선택하여 링크의 윤곽과 화살표 색을 변경합니다.

    색을 선택할 수 있는 색 집합 선택 상자가 나타납니다.

  6. 색 집합 선택 대화 상자에서 다음 중 하나를 선택합니다.

    적용할 내용

    수행할 단계

    색 집합

    색 집합 선택 목록을 엽니다. 색 집합을 선택합니다.

    기본 색으로 되돌리려면 색 집합 선택 목록에서 없음을 클릭합니다.

    특정 색

    형식 또는 속성 값 목록을 열어 색을 선택합니다.

    참고

    범례 상자의 스타일을 다시 정렬하거나, 삭제하거나, 일시적으로 비활성화할 수 있습니다.범례 상자 수정을 참조하십시오.

노드 및 링크에 사용자 지정 스타일 적용

다음 항목에 사용자 지정 스타일을 적용할 수 있습니다.

  • 단일 노드 및 링크

  • 노드 및 링크 그룹

  • 특정 조건을 기반으로 한 노드 및 링크 그룹

단일 노드에 사용자 지정 스타일을 적용하려면

  1. 스타일을 사용자 지정할 노드의 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 .dgml 파일이 열리고 해당 노드에 대한 <Node/> 요소가 강조 표시됩니다.

  2. <Node/> 요소에 다음 특성을 추가하여 노드 스타일을 사용자 지정합니다.

    변경 대상

    추가할 특성

    배경색

    Background="ColorNameOrHexadecimalValue"

    윤곽선

    Stroke="ColorNameOrHexadecimalValue"

    윤곽선 두께

    StrokeThickness="StrokeValue"

    텍스트 색

    Foreground="ColorNameOrHexadecimalValue"

    아이콘

    Icon="IconFilePathLocation"

    텍스트 크기

    FontSize="FontSizeValue"

    텍스트 글꼴

    FontFamily="FontFamilyName"

    텍스트 두께

    FontWeight="FontWeightValue"

    텍스트 스타일

    FontStyle="FontStyleName"

    예를 들어 텍스트 스타일로 Italic을 지정할 수 있습니다.

    질감

    Style="Glass"

    - 또는 -

    Style="Plain"

    모양

    모양을 아이콘으로 바꾸려면 Shape 속성을 None으로 설정하고 Icon 속성을 아이콘 파일 경로로 설정합니다.

    Shape="ShapeFilePathLocation"

    예를 들면 다음과 같습니다.

    <Nodes>
       <Node Id="MyNode" Background="#FF008000" Stroke="#FF000000"
       Foreground="#FFFFFFFF" Icon="...\Icons\Globe.png"/>
    </Nodes>
    

단일 링크에 사용자 지정 스타일을 적용하려면

  1. 그래프에서 마우스 포인터를 링크 위로 이동합니다. 도구 설명이 표시되고 링크의 소스 노드와 대상 노드가 식별됩니다. (키보드: 포커스가 링크로 올 때까지 Tab 키를 누릅니다.)

  2. 그래프에 대한 바로 가기 메뉴를 엽니다. Goto, 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. 그래프 영역에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 그래프의 .dgml 파일이 열립니다.

  3. <Styles></Styles> 요소가 없으면 <DirectedGraph></DirectedGraph> 요소 아래의 <Links></Links> 요소 다음에 이 요소를 추가합니다.

  4. <Styles></Styles> 요소의 <Style/> 요소 아래에서 다음 특성을 지정합니다.

    • TargetType="Node | Link | Graph"

    • GroupLabel="NameInLegendBox"

    • ValueLabel="NameInStylePickerBox"

    모든 대상 유형에 사용자 지정 스타일을 적용하려면 조건을 사용하지 않습니다.

노드 또는 링크 그룹에 조건부 스타일을 적용하려면

  1. <Style/> 요소에 Expression 특성이 포함된 <Condition/> 요소를 추가하여 부울 값을 반환하는 식을 지정합니다.

    예를 들면 다음과 같습니다.

    <Condition Expression="MyCategory"/>
    

    -또는-

    <Condition Expression="MyCategory > 100"/>
    

    -또는-

    <Condition Expression="HasCategory('MyCategory')"/>
    

    이 식에서는 다음과 같은 BNF(Backus-Naur Form) 구문을 사용합니다.

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

이러한 단계를 모두 보여 주는 간단한 예로, 다음 조건은 노드의 Passed 범주가 True로 설정되었는지 False로 설정되었는지에 따라 노드가 녹색 또는 빨간색으로 나타나도록 지정합니다.

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
   <Nodes>
      <Node Id="MyFirstNode" Passed="True" />
      <Node Id="MySecondNode" Passed="False" />
   </Nodes>
   <Links>
   </Links>
   <Styles>
      <Style TargetType="Node" GroupLabel="Passed" ValueLabel="True">
         <Condition Expression="Passed='True'"/>
         <Setter Property="Background" Value="Green"/>
      </Style>
      <Style TargetType="Node" GroupLabel="Passed" ValueLabel="False">
         <Condition Expression="Passed='False'"/>
         <Setter Property="Background" Value="Red"/>
      </Style>
   </Styles>
</DirectedGraph>

다음 표에는 사용할 수 있는 조건의 몇 가지 예가 나와 있습니다.

작업

DGML 예제

글꼴 크기를 코드 줄 수의 함수로 설정합니다. 이 경우 노드 크기도 변경됩니다. 이 예제에서는 단일 조건식을 사용하여 여러 속성, 즉 FontSize와 FontFamily를 설정합니다.

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
   <Node Id="Class1" LinesOfCode ="200" />
   <Node Id="Class2" LinesOfCode ="1000" />
   <Node Id="Class3" LinesOfCode ="20" />
</Nodes>
<Properties>
   <Property Id="LinesOfCode" Label="LinesOfCode" Description="LinesOfCode" DataType="System.Int32" />
</Properties>
<Styles>
   <Style TargetType="Node" GroupLabel="LinesOfCode" ValueLabel="Function">
      <Condition Expression="LinesOfCode &gt; 0" />
      <Setter Property="FontSize" Expression="Math.Max(9,Math.Sqrt(LinesOfCode))" />
      <Setter Property="FontFamily" Value="Papyrus" />
   </Style>
</Styles>
</DirectedGraph>

Coverage 속성에 따라 노드의 배경색을 설정합니다. 스타일은 if-else 문과 마찬가지로 나타나는 순서대로 확인됩니다.

이 예제에 대한 설명:

  1. Coverage가 80보다 크게 설정되었으면 Background 속성을 녹색으로 설정합니다.

  2. Coverage가 50보다 작게 설정되었으면 Coverage 속성 값에 따라 Background 속성을 주황색 음영으로 설정합니다.

  3. 또한 Background 속성은 Coverage 속성 값에 따라 빨간색 음영으로 설정합니다.

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
   <Node Id="Class1" Coverage="58" />
   <Node Id="Class2" Coverage="95" />
   <Node Id="Class3" Coverage="32" />
</Nodes>
<Properties>
   <Property Id="Coverage" Label="Coverage" Description="Code coverage as a percentage of blocks" DataType="Double" />
</Properties>
<Styles>
   <Style TargetType="Node" GroupLabel="Coverage" ValueLabel="Good">
      <Condition Expression="Coverage &gt; 80" />
      <Setter Property="Background" Value="Green" />
   </Style>
   <Style TargetType="Node" GroupLabel="Coverage" ValueLabel="OK">
      <Condition Expression="Coverage &gt; 50" />
      <Setter Property="Background" Expression="Color.FromRgb(180 * Math.Max(1, (80 - Coverage) / 30), 180, 0)" />
   </Style>
   <Style TargetType="Node" GroupLabel="Coverage" ValueLabel="Bad">
      <Setter Property="Background" Expression="Color.FromRgb(180, 180 * Coverage / 50, 0)" />
   </Style>
</Styles>
</DirectedGraph>

모양이 아이콘으로 대체되도록 Shape 속성을 None으로 설정합니다. Icon 속성을 사용하여 아이콘 위치를 지정합니다.

<DirectedGraph xmlns="https://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
   <Node Id="Automation" Category="Test" Label="Automation" />
   <Node Id="C# Provider" Category="Provider" Label="C# Provider" />
</Nodes>
<Categories>
   <Category Id="Provider" Icon="...\Icons\Module.png" Shape="None" />
   <Category Id="Test" Icon="...\Icons\Page.png" Shape="None" />
</Categories>
<Properties>
   <Property Id="Icon" DataType="System.String" />
   <Property Id="Label" Label="Label" Description="Displayable label of an Annotatable object" DataType="System.String" />
   <Property Id="Shape" DataType="System.String" />
</Properties>
<Styles>
   <Style TargetType="Node" GroupLabel="Group" ValueLabel="Has category">
      <Condition Expression="HasCategory('Group')" />
      <Setter Property="Background" Value="#80008080" />
   </Style>
   <Style TargetType="Node">
      <Setter Property="HorizontalAlignment" Value="Center" />
   </Style>
</Styles>
</DirectedGraph>

범례 상자 수정

범례 상자의 스타일을 다시 정렬하거나, 삭제하거나, 일시적으로 비활성화할 수 있습니다.

  1. 범례 상자 내의 스타일에 대한 바로 가기 메뉴를 엽니다.

  2. 다음 작업 중 하나를 수행합니다.

    수행할 작업

    Choose

    스타일을 위로 이동

    위로 이동

    항목을 아래로 이동

    아래로 이동

    항목 삭제

    삭제

    항목 비활성화

    사용 안 함

    항목 다시 활성화

    사용

그래프 간에 스타일 복사

  1. 범례 상자가 소스 그래프 위에 나타나는지 확인합니다. 범례 상자가 표시되지 않을 경우 소스 그래프의 빈 영역에 대한 바로 가기 메뉴를 엽니다. 범례 표시를 선택합니다.

  2. 범례 상자에 대한 바로 가기 메뉴를 엽니다. 범례 복사를 선택합니다.

  3. 범례를 대상 그래프에 붙여 넣습니다.

노드 및 링크에 속성 할당

속성을 할당하여 노드 및 링크를 구성할 수 있습니다. 예를 들어 속성에 따라 노드를 그룹화하거나, 스타일을 변경하거나, 숨길 수 있도록 특정 속성을 가진 노드를 선택할 수 있습니다.

노드에 속성을 할당하려면

  1. 노드에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 .dgml 파일이 열리고 해당 노드에 대한 <Node/> 요소가 강조 표시됩니다.

  2. <Node/> 요소에서 속성 이름 및 해당 값을 지정합니다. 예를 들면 다음과 같습니다.

    <Nodes>
       <Node Id="MyNode" MyPropertyName="PropertyValue" />
    </Nodes>
    
  3. <Properties> 섹션에 <Property/> 요소를 추가하여 표시 이름 및 데이터 형식 등의 특성을 지정합니다.

    <Properties>
       <Property Id="MyPropertyName" Label="My Property" DataType="System.DataType"/>
    </Properties>
    

링크에 속성을 할당하려면

  1. 그래프에서 마우스 포인터를 링크 위로 이동합니다. 도구 설명이 표시되고 링크의 소스 노드와 대상 노드가 식별됩니다. (키보드: 포커스가 링크로 올 때까지 Tab 키를 누릅니다.)

  2. 그래프에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 그래프의 .dgml 파일이 열립니다.

  3. 소스 노드의 이름과 대상 노드의 이름을 모두 포함하는 <Link/> 요소를 찾습니다.

  4. <Node/> 요소에서 속성 이름 및 해당 값을 지정합니다. 예를 들면 다음과 같습니다.

    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" MyPropertyName="PropertyValue" />
    </Links>
    
  5. <Properties> 섹션에 <Property/> 요소를 추가하여 표시 이름 및 데이터 형식 등의 특성을 지정합니다.

    <Properties>
       <Property Id="MyPropertyName" Label="My Property Name" DataType="System.DataType"/>
    </Properties>
    

노드 및 링크에 범주 할당

범주를 할당하여 노드를 구성할 수 있습니다. 예를 들어 범주에 따라 노드를 그룹화하거나, 스타일을 변경하거나, 숨길 수 있도록 특정 범주에 있는 노드를 선택할 수 있습니다. 특정 범주의 링크를 강조 표시할 수도 있습니다. 자세한 내용은 다음 단원을 참조하십시오.

  • 노드 그룹화

  • 노드 및 링크 스타일 변경

  • 노드 숨기기 또는 표시

노드에 범주를 할당하려면

  • 범주 1과 같이 미리 정의된 범주를 할당하려면 노드에 대한 바로 가기 메뉴를 엽니다. 범주를 선택하고 범주를 미리 정의합니다.

- 또는 -

  • 사용자 지정 범주를 만들어 할당하려면 다음을 수행합니다.

    • 범주화할 노드를 선택합니다. F4 키를 눌러 속성 창을 엽니다. 노드의 새 범주 속성에 새 범주 이름을 입력합니다. Enter 키를 누릅니다.

    - 또는 -

    1. 노드에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

      Visual Studio에서 .dgml 파일이 열리고 해당 노드에 대한 <Node/> 요소가 강조 표시됩니다.

    2. <Node/> 요소에 Category 특성을 추가하여 범주 이름을 지정합니다. 예를 들면 다음과 같습니다.

      <Nodes>
         <Node Id="MyNode" Category="MyCategory" />
      </Nodes>
      
    3. Label 특성을 사용하여 범주의 표시 텍스트를 지정할 수 있도록 <Categories> 섹션에 <Category/> 요소를 추가합니다.

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

링크에 범주를 할당하려면

  1. 그래프에서 링크 위로 마우스 포인터를 이동하여 도구 설명을 표시하고 링크의 소스 노드와 대상 노드를 식별합니다. (키보드: 포커스가 링크로 올 때까지 Tab 키를 누릅니다.)

  2. 그래프에 대한 바로 가기 메뉴를 엽니다. Goto, DGML을 차례로 선택합니다.

    Visual Studio에서 그래프의 .dgml 파일이 열립니다.

  3. 소스 노드의 이름과 대상 노드의 이름을 모두 포함하는 <Link/> 요소를 찾습니다.

  4. <Link/> 요소에 Category 특성을 추가하여 범주 이름을 지정합니다. 예를 들면 다음과 같습니다.

    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" Category="MyCategory"
    </Links>
    
  5. Label 특성을 사용하여 범주의 표시 텍스트를 지정할 수 있도록 <Categories> 섹션에 <Category/> 요소를 추가합니다.

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

계층적 범주를 만들면 노드를 구성하고 상속을 통해 자식 범주에 특성을 추가하는 데 유용합니다.

계층적 범주를 만들려면

  • 부모 범주에 대한 <Category/> 요소를 추가한 다음 자식 범주의 <Category/> 요소에 BasedOn 특성을 추가합니다.

    예를 들면 다음과 같습니다.

    <Nodes>
       <Node Id="MyFirstNode" Label="My First Node" Category= "MyCategory" />
       <Node Id="MySecondNode" Label="My Second Node" />
    </Nodes>
    <Links>
       <Link Source="MyFirstNode" Target="MySecondNode" />
    </Links>
    <Categories>
       <Category Id="MyCategory" Label="My Category" BasedOn="MyParentCategory"/>
       <Category Id="MyParentCategory" Label="My Parent Category" Background="Green"/>
    </Categories>
    

    이 예제에서 MyFirstNode의 Category 특성은 MyParentCategory의 Background 특성을 상속하므로 이 노드의 배경은 녹색입니다.

노드 또는 링크에 항목 연결

그래프의 .dgml 파일을 편집하고 Reference 특성을 노드의 <Node/> 요소 또는 링크의 <Link/> 요소에 추가하여 노드 또는 링크에 문서 또는 URL 등의 항목을 링크할 수 있습니다. 그 다음에는 노드 또는 링크에서 해당 콘텐츠를 열고 볼 수 있습니다. Reference 특성은 해당 내용의 경로를 지정합니다. 이 경로는 .dgml 파일의 위치를 기준으로 하는 상대 경로이거나 절대 경로일 수 있습니다.

경고

상대 경로를 사용할 경우 .dgml 파일을 다른 위치로 이동하면 해당 경로가 더 이상 확인되지 않습니다.링크된 콘텐츠를 열고 보려고 시도하면 콘텐츠를 볼 수 없다는 오류가 발생합니다.

예를 들어 다음과 같은 항목을 연결할 수 있습니다.

  • 클래스에 대한 변경 내용을 기술하기 위해 작업 항목, 문서 또는 다른 .dgml 파일의 URL을 클래스의 노드에 연결할 수 있습니다.

  • 소프트웨어의 논리 아키텍처에서 레이어를 나타내는 그룹 노드에 레이어 다이어그램을 연결할 수 있습니다.

  • 인터페이스를 노출하는 구성 요소에 대한 자세한 정보가 표시되도록 해당 인터페이스의 노드에 구성 요소 다이어그램을 연결할 수 있습니다.

  • Team Foundation Server 작업 항목, 버그 또는 노드와 관련된 다른 정보에 노드를 링크합니다.

노드에 항목을 연결하려면

  1. 그래프에서 노드에 대한 바로 가기 메뉴를 엽니다. Goto, 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로 설정하여 해당 참조가 항목의 Goto 바로 가기 메뉴에 표시되도록 합니다.

      4. Label 특성을 사용하여 항목의 Goto 바로 가기 메뉴에 표시할 텍스트를 지정합니다.

    예를 들면 다음과 같습니다.

    <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>
    그래프에서 노드 이름은 밑줄이 쳐진 상태로 표시됩니다. 노드 또는 링크에 대한 바로 가기 메뉴를 열면 선택할 수 있는 링크된 항목이 포함된 **Goto** 바로 가기 메뉴가 표시됩니다.
    1. ReferenceTemplate 특성을 사용하여 URL 등의 일반 문자열을 지정합니다. 이 특성은 여러 참조에서 해당 문자열을 반복하는 대신 사용됩니다.

      ReferenceTemplate 특성은 참조 값의 자리 표시자를 지정합니다. 다음 예제에서는 ReferenceTemplate 특성의 {0} 자리 표시자가 <Node/> 요소의 MyFirstReference 및 MySecondReference 특성 값으로 바뀌어 전체 경로를 생성합니다.

      <Nodes>
         <Node Id="MyNode" MyFirstReference="MyFirstDocument" MySecondReference="MySecondDocument"/>
         <Node Id="MySecondNode" MyFirstReference="AnotherFirstDocument" MySecondReference="AnotherSecondDocument"/>
      </Nodes>
      <Properties>
         <Property Id="MyFirstReference" Label="My First Document" DataType="System.String" IsReference="True" ReferenceTemplate="http://www.Fabrikam.com/FirstDocuments/{0}.asp"/>
         <Property Id="MySecondReference" Label="My Second Document" DataType="System.String" IsReference="True" ReferenceTemplate=" http://www.Fabrikam.com/SecondDocuments/{0}.asp"/>
      </Properties>
      
    2. 참조된 항목 또는 그래프의 항목을 보려면 노드 또는 링크에 대한 바로 가기 메뉴를 엽니다. Goto를 선택하고 항목을 선택하십시오.

    일반적으로 사용하는 경로에 대한 별칭 만들기

    일반적으로 사용되는 경로를 별칭으로 바꾸면 .dgml 파일의 크기뿐만 아니라 파일을 로드하거나 저장하는 데 필요한 시간을 줄일 수 있습니다. 별칭을 만들려면 .dgml 파일의 끝에 <Paths></Paths> 섹션을 추가합니다. 다음과 같이 이 섹션에서 <Path/> 요소를 추가하여 경로의 별칭을 정의합니다.

    <Paths>
       <Path Id="MyPathAlias" Value="C:\...\..." />
    </Paths>
    

    .dgml 파일의 요소에서 별칭을 참조하려면 다음과 같이 <Path/> 요소의 Id 값을 달러 기호($) 및 괄호(())로 묶습니다.

    <Nodes>
       <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
    </Nodes>
    <Properties>
       <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
    </Properties>
    

    Directed Graph Markup Language 이해

    DGML은 간단한 XML을 사용하여 순환 및 비순환 방향이 지정된 그래프를 기술합니다. 방향이 지정된 그래프는 링크 또는 가장자리로 연결되는 노드의 집합입니다. 노드 및 링크를 사용하여 소프트웨어 프로젝트의 요소와 같은 네트워크 구조를 나타낼 수 있습니다. 정보 시각화, 복잡성 분석 등을 수행하려는 경우 또는 방향이 지정된 그래프를 검색하고 편집만 하려는 경우에도 DGML을 사용할 수 있습니다.

    노드와 링크를 그래프 요소 또는 요소라고 합니다. 다음 표에서는 DGML에 사용되는 요소의 종류에 대해 설명합니다.

    참고

    .dgml 파일을 편집하는 경우 IntelliSense를 사용하면 각 요소 및 요소 값에 사용할 수 있는 특성을 식별할 수 있습니다.특성에 색을 지정하려면 "Blue"와 같은 일반적인 색의 이름 또는 "#ffa0b1c3"과 같은 ARGB 16진수 값을 사용합니다.DGML은 WPF(Windows Presentation Foundation) 색 정의 형식의 일부를 사용합니다.자세한 내용은 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로 설정하여 노드의 내용을 표시하거나 숨길 수 있습니다. Category="Contains" 특성을 포함하고, 부모 노드와 자식 노드를 각각 소스 노드와 대상 노드로 지정하는 <Link/> 요소가 있어야 합니다. 노드를 그룹으로 구성을 참조하십시오.

    • Visibility - 이 특성을 Visible, Hidden 또는 Collapsed로 설정합니다. System.Windows.Visibility를 사용합니다. 노드 숨기기 또는 표시를 참조하십시오.

    • Reference - 이 특성을 문서 또는 URL에 대한 링크로 설정합니다. 노드에 항목 연결을 참조하십시오.

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Student" Category="Person" />
          <Node Id="Passenger" Label="Instructor" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
       </Nodes>
       <Links>
          <Link ... />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
       </Categories>
    </DirectedGraph>

    <Links></Links>

    이 요소에는 노드 간의 링크를 정의하는 <Link> 요소 목록이 포함됩니다. 자세한 내용은 <Link/> 요소를 참조하십시오.

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Links>
          <Link ... />
       </Links>
    </DirectedGraph>

    <Link/>

    이 요소는 소스 노드를 대상 노드에 연결하는 단일 링크를 정의합니다. 또한 <Links></Links> 요소 목록 내에 나타납니다.

    참고

    이 요소가 정의되지 않은 노드를 참조하는 경우 그래프 문서에서는 지정된 특성을 포함하는 노드를 자동으로 만듭니다.

    이 요소에는 다음과 같은 특성이 포함되어야 합니다.

    • Source - 링크의 소스 노드입니다.

    • Target - 링크의 대상 노드입니다.

    다음 목록에서는 포함할 수 있는 선택적 특성 중 일부에 대해 설명합니다.

    • Label - 링크의 표시 이름입니다.

    • 스타일 특성. 노드 및 링크에 사용자 지정 스타일 적용을 참조하십시오.

    • Category - 이 특성을 공유하는 요소를 식별하는 범주의 이름입니다. 자세한 내용은 <Category/> 요소를 참조하십시오.

    • Property - 속성 값이 같은 요소를 식별하는 속성의 이름입니다. 자세한 내용은 <Property/> 요소를 참조하십시오.

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Student" Category="Person" />
          <Node Id="Passenger" Label="Instructor" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
       </Nodes>
       <Links>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Link Source="Driver" Target="Car" Label="Passed" Stroke="Black" Background="Green" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Stroke="Black" Background="Red" Category="PassedTest" />
       </Links>
    </DirectedGraph>

    <Categories></Categories>

    이 요소에는 <Category/> 요소 목록이 포함됩니다. 자세한 내용은 <Category/> 요소를 참조하십시오.

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Categories>
           <Category ... />
       </Categories>
    </DirectedGraph>

    <Category/>

    이 요소는 이 특성을 공유하는 요소를 식별하는 데 사용되는 Category 특성을 정의합니다. Category 특성을 사용하면 그래프 요소를 구성하고, 공유된 특성을 상속을 통해 제공하거나 추가 메타데이터를 정의할 수 있습니다.

    이 요소에는 다음과 같은 특성이 포함되어야 합니다.

    • Id - Label 특성이 별도로 지정되지 않은 경우 Label 특성의 기본값 및 범주의 고유 이름입니다.

    다음 목록에서는 포함할 수 있는 선택적 특성 중 일부에 대해 설명합니다.

    • Label - 읽기 쉬운 형식의 범주 이름입니다.

    • BasedOn - 현재 요소의 <Category/>가 상속되는 부모 범주입니다.

      이 요소의 예제에서 FailedTest 범주는 PassedTest 범주에서 Stroke 특성을 상속합니다. 자세한 내용은 노드 및 링크에 범주 할당에서 "계층적 범주를 만들려면"을 참조하십시오.

    또한 범주는 노드 및 링크가 그래프에 표시되는 모양을 제어하는 몇 가지 기본적인 템플릿 동작을 제공합니다. 노드 및 링크에 사용자 지정 스타일 적용을 참조하십시오.

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Driver" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
          <Node Id="Passenger" Category="Person" />
       </Nodes>
       <Links>
          <Link Source="Driver" Target="Car" Label="Passed" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Category="FailedTest" />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Category Id="PassedTest" Label="Passed" Stroke="Black" Background="Green" />
          <Category Id="FailedTest" Label="Failed" BasedOn="PassedTest" Background="Red" />
       </Categories>
    </DirectedGraph>

    <Properties></Properties>

    이 요소에는 <Property/> 요소 목록이 포함됩니다. 자세한 내용은 <Property/> 요소를 참조하십시오.

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="https://schemas.microsoft.com/vs/2009/dgml">
       <Properties>
           <Property ... />
       </Properties>
    </DirectedGraph>

    <Property/>

    이 요소는 범주 및 기타 속성을 포함하여 DGML 요소 또는 특성에 값을 할당할 때 사용할 수 있는 Property 특성을 정의합니다.

    이 요소에는 다음과 같은 특성이 포함되어야 합니다.

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

    참고 항목

    개념

    종속성 그래프를 사용하여 코드 전체에서 종속성 매핑

    종속성 그래프 찾아보기 및 다시 정렬