2013-05-13 3 views
0

System.Windows.Shapes.Path을 사용하여 육각형을 정의했지만 Stroke을 적용하면 (SolidColorBrush) 국경이 바깥 쪽과 안쪽이됩니다.내부에 테두리를 지정할 수 있습니까?

스트로크가 내 Path 내부에만 적용되도록하려면 어떻게해야합니까?

답변

0

종속성 속성 Clip을 사용해야합니다.이 같은 자체 지오메트리로 경로를 잘라내는 것이 좋습니다.

<Path ... Clip="{Binding Data, RelativeSource={RelativeSource Self}}"/> 

획의 절반 만 표시되므로 StrokeThickness를 두 배 늘려야합니다.

실버 라이트와 WPF에서 잘 작동한다고해도,이 코드를 사용하여 과거에 몇 가지 문제가있었습니다 (클립을 상대 소스에 바인딩). 다른 바인딩을 추가하거나 단순히 코드에 Clip을 할당하여이 문제를 쉽게 해결했습니다.

편집 : 또한 클리핑의 경우 pathGeometry를 채워야합니다.

잘린 영역은 형상의 "외부"입니다. 즉, 표시된 콘텐츠 (자르지 않은) 인 은 지오메트리가 클리핑이 아닌 경로 에 대한 데이터로 사용 된 경우 에 채우기가있는 지오메트리의 영역입니다. 잘린 영역은 도형 오버레이 외부에 으로 떨어지는 영역입니다. 복잡한 지오메트리의 경우 이 잘 리거나 잘리지 않는 영역은 지오메트리의 FillRule의 영향을받습니다.

+0

시도 : path.Data = pathGeometry; path.Clip = pathGeometry; (이 추가) 있지만 ArgumentException :-(클리핑에 대한 – Jason94

+0

상태, pathGeometry 채워 져야합니다 – Cybermaxs

관련 문제