다음을 통해 공유


경로 태그 구문

업데이트: 2007년 11월

경로에 대해서는 WPF에서 Shape 및 기본 그리기 개요Geometry 개요에서 다루었지만 이 항목에서는 XAML(Extensible Application Markup Language)을 사용하여 경로 기하 도형을 더 간결하게 지정하는 데 사용할 수 있는 강력하고 복잡한 미니 언어를 자세히 설명합니다.  

이 항목에는 다음 단원이 포함되어 있습니다.

사전 요구 사항

이 항목의 내용을 이해하려면 Geometry 개체의 기본 기능에 대해 잘 알고 있어야 합니다. 자세한 내용은 Geometry 개요를 참조하십시오.

StreamGeometry 및 PathFigureCollection 미니 언어

WPF에서는 기하학적 경로를 설명하기 위한 미니 언어를 포함하는 StreamGeometryPathFigureCollection이라는 두 개의 클래스를 제공합니다.

  • UIElementClip 속성 또는 Path 요소의 Data 속성과 같은 Geometry 형식의 속성을 설정할 때 StreamGeometry 미니 언어를 사용합니다. 다음 예제에서는 특성 구문을 사용하여 StreamGeometry를 만듭니다.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • PathGeometryFigures 속성을 설정할 때 PathFigureCollection 미니 언어를 사용합니다. 다음 예제에서는 특성 구문을 사용하여 PathGeometryPathFigureCollection을 만듭니다.

    <Path Stroke="Black" Fill="Gray">
      <Path.Data>
        <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" />
      </Path.Data>
    </Path>
    

앞의 예제에서 볼 수 있듯이 이 두 미니 언어는 매우 유사합니다. StreamGeometry를 사용할 수 있는 경우에는 언제나 PathGeometry도 사용할 수 있습니다. 그렇다면 무엇을 사용해야 할까요? 경로를 만든 후 수정할 필요가 없으면 StreamGeometry를 사용하고 경로를 수정해야 하는 경우에는 PathGeometry를 사용합니다.

PathGeometryStreamGeometry 개체 간의 차이점에 대한 자세한 내용은 Geometry 개요를 참조하십시오.

공백에 대한 참고 사항

다음의 구문 단원에서는 간결하게 나타내기 위해 하나의 공백이 표시되어 있지만 하나의 공백이 표시된 모든 곳에는 여러 공백도 허용됩니다.

두 숫자를 실제로는 쉼표나 공백으로 분리할 필요가 없지만 결과 문자열이 명확한 경우에만 이렇게 할 수 있습니다. 예를 들어 2..3은 실제로 "2."과 ".3"입니다. 마찬가지로 2-3은 "2"와 "-3"입니다. 명령의 앞이나 뒤에 공백이 필요하지 않습니다.

구문

StreamGeometry의 XAML(Extensible Application Markup Language) 특성 사용 구문은 선택적 FillRule 값과 하나 이상의 그림 설명으로 구성됩니다.

StreamGeometry XAML 특성 사용법

<objectproperty="[fillRule] figureDescription[figureDescription]*" ... />

PathFigureCollection의 XAML(Extensible Application Markup Language) 특성 사용 구문은 하나 이상의 그림 설명으로 구성됩니다.

PathFigureCollection XAML 특성 사용법

<objectproperty="figureDescription[figureDescription]*" ... />

설명

fillRule

System.Windows.Media.FillRule

StreamGeometry에서 EvenOdd 또는 Nonzero FillRule 중 무엇을 사용하는지를 지정합니다.

  • F0은 EvenOdd 채우기 규칙을 지정합니다.

  • F1은 Nonzero 채우기 규칙을 지정합니다.

이 명령을 생략하면 하위 경로에서는 기본 동작인 EvenOdd를 사용합니다. 이 명령을 지정하려면 명령을 맨 처음에 배치해야 합니다.

figureDescription

이동 명령, 여러 개의 그리기 명령 및 선택적 닫기 명령으로 구성되는 그림입니다.

moveCommanddrawCommands [closeCommand]

moveCommand

그림의 시작점을 지정하는 이동 명령입니다. 이동 명령 단원을 참조하십시오.

drawCommands

그림의 콘텐츠를 설명하는 하나 이상의 그리기 명령입니다. 그리기 명령 단원을 참조하십시오.

closeCommand

그림을 닫는 선택적 닫기 명령입니다. 닫기 명령 단원을 참조하십시오.

이동 명령

새 그림의 시작점을 지정합니다.

구문

MMstartPoint

- 또는 -

mmstartPoint

설명

startPoint

System.Windows.Point

새 그림의 시작점입니다.

대문자 M은 startPoint가 절대 값임을 나타내고 소문자 m은 startPoint가 이전 지점 또는 이전 지점이 없는 경우 (0,0)에 대한 오프셋입니다. 이동 명령 뒤에 여러 지점을 열거하면 선 명령을 지정한 것처럼 이러한 지점에 선이 그려집니다.

그리기 명령

그리기 명령은 여러 도형 명령으로 구성될 수 있습니다. 선, 가로줄, 세로줄, 입방형 3차원 곡선, 정방형 3차원 곡선, 부드러운 입방형 3차원 곡선, 부드러운 정방형 3차원 곡선 및 타원형 원호와 같은 도형 명령을 사용할 수 있습니다.

각 명령을 대문자나 소문자를 사용하여 입력합니다. 대문자는 절대 값을 나타내고 소문자는 상대 값을 나타냅니다. 해당 세그먼트의 제어점은 앞 예제의 끝점을 기준으로 합니다. 같은 형식인 두 개 이상의 명령을 순서대로 입력할 때는 중복되는 명령 항목을 생략할 수 있습니다. 예를 들어 L 100,200 300,400은 L 100,200 L 300,400과 동일합니다. 다음 표에서는 movedraw 명령에 대해 설명합니다.

선 명령

현재 지점과 지정한 끝점 사이에 직선을 만듭니다. l 20 30 및 L 20,30은 유효한 line 명령의 예입니다.

구문

LLendPoint

- 또는 -

llendPoint

설명

endPoint

System.Windows.Point

선의 끝점입니다.

가로줄 명령

현재 지점과 지정한 X 좌표 사이에 가로줄을 만듭니다. H 90은 유효한 가로줄 명령의 예입니다.

구문

H x

- 또는 -

h x

설명

x

System.Double

선의 끝점에 대한 X 좌표입니다.

세로줄 명령

현재 지점과 지정한 Y 좌표 사이에 세로줄을 만듭니다. v 90은 유효한 세로줄 명령의 예입니다.

구문

V y

- 또는 -

v y

설명

y

System.Double

선의 끝점에 대한 Y 좌표입니다.

입방형 3차원 곡선 명령

지정한 두 개의 제어점(controlPoint1 및 controlPoint2)을 사용하여 현재 지점과 지정한 끝점 사이에 입방형 3차원 곡선을 만듭니다. C 100,200 200,400 300,200은 유효한 곡선 명령의 예입니다.

구문

C controlPoint1 controlPoint2 endPoint

- 또는 -

c controlPoint1 controlPoint2 endPoint

설명

controlPoint1

System.Windows.Point

곡선의 시작 접선을 결정하는 곡선의 첫 번째 제어점입니다.

controlPoint2

System.Windows.Point

곡선의 끝 접선을 결정하는 곡선의 두 번째 제어점입니다.

endPoint

System.Windows.Point

곡선이 그려질 지점입니다.

정방형 3차원 곡선 명령

지정한 제어점(controlPoint)을 사용하여 현재 지점과 지정한 끝점 사이에 정방형 3차원 곡선을 만듭니다. q 100,200 300,200은 유효한 정방형 3차원 곡선 명령의 예입니다.

구문

Q controlPoint endPoint

- 또는 -

q controlPoint endPoint

설명

controlPoint

System.Windows.Point

곡선의 시작 및 끝 접선을 결정하는 곡선의 제어점입니다.

endPoint

System.Windows.Point

곡선이 그려질 지점입니다.

부드러운 입방형 3차원 곡선 명령

현재 지점과 지정한 끝점 사이에 입방형 3차원 곡선을 만듭니다. 첫 번째 제어점은 현재 지점을 기준으로 이전 명령의 두 번째 제어점에 대한 리플렉션일 것으로 간주됩니다. 이전 명령이 없거나 이전 명령이 입방형 3차원 곡선 명령 또는 부드러운 입방형 3차원 곡선 명령이 아닌 경우 첫 번째 제어점은 현재 지점과 일치하는 것으로 간주됩니다. 두 번째 제어점 즉, 곡선의 끝에 대한 제어점은 controlPoint2로 지정합니다. 예를 들어 S 100,200 200,300은 유효한 부드러운 입방형 3차원 곡선 명령입니다.

구문

S controlPoint2 endPoint

- 또는 -

s controlPoint2 endPoint

설명

controlPoint2

System.Windows.Point

곡선의 끝 접선을 결정하는 곡선의 제어점입니다.

endPoint

System.Windows.Point

곡선이 그려질 지점입니다.

부드러운 정방형 3차원 곡선 명령

현재 지점과 지정한 끝점 사이에 정방형 3차원 곡선을 만듭니다. 제어점은 현재 지점을 기준으로 이전 명령의 제어점에 대한 리플렉션일 것으로 간주됩니다. 이전 명령이 없거나 이전 명령이 정방형 3차원 곡선 명령 또는 부드러운 정방형 3차원 곡선 명령이 아닌 경우 제어점은 현재 지점과 일치합니다.

구문

T controlPoint endPoint

- 또는 -

t controlPoint endPoint

설명

controlPoint

System.Windows.Point

곡선의 시작 접선을 결정하는 곡선의 제어점입니다.

endPoint

System.Windows.Point

곡선이 그려질 지점입니다.

타원형 원호 명령

현재 지점과 지정한 끝점 사이에 타원형 원호를 만듭니다.

구문

A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

- 또는 -

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

설명

size

System.Windows.Size

원호의 X 및 Y 반지름입니다.

rotationAngle

System.Double

타원의 회전 각도(도)입니다.

isLargeArcFlag

원호의 각도가 180도 이상인 경우 1로 설정하고 그렇지 않으면 0으로 설정합니다.

sweepDirectionFlag

원호를 양의 각도 방향으로 그리는 경우 1로 설정하고 그렇지 않으면 0으로 설정합니다.

endPoint

System.Windows.Point

원호가 그려질 지점입니다.

닫기 명령

현재 그림을 끝내고 현재 지점을 그림의 시작점에 연결하는 선을 만듭니다. 이 명령은 그림의 마지막 세그먼트와 첫 번째 세그먼트 사이에 선 조인(모퉁이)을 만듭니다.

구문

Z

- 또는 -

z

점 구문

점의 X 및 Y 좌표를 설명합니다.

구문

x,y

- 또는 -

x y

설명

x

System.Double

점의 X 좌표입니다.

y

System.Double

점의 Y 좌표입니다.

특수 값

표준 숫자 값 대신 다음과 같은 특수 값을 사용할 수도 있습니다. 이러한 값은 대/소문자를 구분하지 않습니다.

과학적 표기법도 사용할 수 있습니다. 예를 들어 +1.e17은 유효한 값입니다.

참고 항목

개념

WPF에서 Shape 및 기본 그리기 개요

Geometry 개요

참조

Path

StreamGeometry

PathGeometry

PathFigureCollection

기타 리소스

Geometry 방법 항목

Geometry 샘플

Shape 샘플