WPF에서는 어떤 경로가 그려지는 방식을 수정할 수있는 방법이 있습니까? APART는 시퀀스를 사용합니까? 내가 드로잉하고있는 모든 경로 또는 작은 삼각형, 파도 등을 위해 삼중 선을 그리기를 원한다고 가정 해 봅시다. 드로잉 경로 자체에. 나는 브러쉬를 시도했지만 Path
을 따르지 않습니다. 제발 도와주세요WPF Line, path ..etc 사용자 지정 그리기 스타일
답변
WPF에서 이렇게하는 방법은 없습니다. 이 솔루션은 복합 Path 객체 또는 복잡한 코드 숨김 체조를 포함합니다. 트리플 라인 경로 구현을 구체적으로 찾고 있습니까?
부착 된 특성을 사용하여 형상을 강제 변형하면 비교적 쉽게 처리 할 수 있습니다. 자세한 내용은 내 대답을 참조하십시오. –
와우 정말 멋집니다. 나는 그런 식으로 생각하지 않았을거야 :). – jgraves
WPF의 Geometry
클래스에는이 작업을 쉽게 수행하는 데 필요한 모든 프리미티브가 있지만 코드에서 수행해야합니다. 사용자 정의 라인을 수행해야 할 때 일반적으로 Geometry
을 기반으로 Drawing
을 구성하지만, 귀하의 경우에는 병렬로 3 개의 라인을 가지고 획을 그을 수있는 Geometry
을 간단하게 작성할 수 있습니다. PathGeometry.CreateFromGeometry()
와
- 시작은 그 가장자리
- (옵션) 사이드 라인에 대응하는 새로운 구조에서 세그먼트를 제거를 얻기 위해 원하는 간격을 전달 사용
GetWidenedPathGeometry()
입력 경로 - 하는
PathGeometry
도착 - 는 삼중 선을 얻을 수있는
CombinedGeometry
- 획을 결합하여 구조를 원래의 형상으로 측면 선 geomerty 결합 원한다면 넓어진 형상의 끝
3 단계에 대한 자세한 설명 : 확대 된 지오메트리에는 원래 줄 끝에 선분이 있습니다. 이로 인해 선 끝을 가로 질러 선이 그려지기 때문에 실제로 많은 경우에 예술적으로 즐겁습니다. 그것없이 상황이 나아지면 사이드 라인 지오메트리를 반복하고 원래 경로의 끝점을 통과하는 모든 선분을 제거하여 제거하십시오.
끝 부분을 떼어 내지 않으면 위의 코드는 약 8 줄의 코드를 사용합니다.
편리하게 만들려면 속한 Path
컨트롤의 Data
속성을 효과적으로 강제하는 첨부 된 속성을 만드는 것이 좋습니다. 이러한 연결된 속성으로, 당신은 쓸 필요가있다 :
<Path TripleStroke.Enable="true" Data="..." />
당신이 연결된 속성을 구현하고있는 핸들러를 등록하는 방법을 알고 있다면,이 케이크 한 조각이다. 그렇지 않은 경우 첨부 된 속성 접근 방식을 구현하기 전에 값 속성을 시뮬레이트하기 위해 연결된 속성을 코딩하는 방법을 배우는 데 몇 시간을 소비 할 계획을 세우십시오.
업데이트 I 위에서 설명하는 기본적인 기술은 또한 임의의 패턴이 경로를 따라 적용 할 수 있도록 확장 될 수
. 예를 들어, 식 디자인 도구에서 사용자 지정 브러시를 참조하십시오. 그러나 WPF에 내장 된 기능은 없기 때문에 직접 만들면됩니다. 경험상 많은 작업임을 알 수 있습니다.다음 기본 단계는 :
첫째는 Geometry
기존 Drawing
취하는 방법 등 단부 캡에 대한 몇몇 파라미터를 생성하고 Geometry
의해 지정된 경로를 따라 주어진 Drawing
반복 새로운 Drawing
을 생성한다. 그러면 스트로크 된 패스를 그리는 것이 쉽습니다. 사용자 정의 획을 설명하는 Drawing
을 작성한 다음 변환 방법을 호출하는 변환기가있는 Binding
을 포함하는 DrawingVisual
을 사용하여 스트로크를 표시하십시오.
실제로 변환 방법 구현하려면 :
- 이
GeometryDrawing
객체의 집합으로 그리기 소스를 변환를 (또한ImageDrawing
을 지원하지만 이미지를 스트레칭하는 3D 시스템을 사용할 필요가 있기 때문에 그것은 더 복잡하다) . 이것은DrawingGroup
개의 객체를 반복하고, 이동하면서 변환을 추적하고, 적절한 변환으로 GeometryDrawings을 구성하여 수행됩니다. - 원본 도면의 "엔드 캡"영역에서 형상의 일부를 제거하고 따로 설정하십시오.
GeometryDrawing
개체를 복제하여 형상의 모든 좌표에 적절한 좌표 변환을 반복적으로 복제합니다.- 동일한 절차를 사용하여 형상의 "엔드 캡"섹션을 처리하십시오.
또한 임의의 GlyphRunDrawings
는 등가 GeometryDrawing
을 만들 FormattedText.BuildGeometry
를 사용하여 처리되는 단계 1 참고.
thx .. 어도비 브러쉬 스트로크와 같은 것이 필요합니다. 경로를 따라 패턴을 가상으로 적용 할 수 있습니다. 지금은 낮은 수준에서 OK 결과를 보여주고 있습니다. – Chandimal
어도비의 WPF처럼 임의의 맞춤 스트로크를 구현 한 방법을 설명하는 내용에 대한 답변을 추가했습니다. 나는 그것이 도움이되기를 바랍니다. –
지금 당장은 적절한 답을 조사 할 시간이 없지만이 기사를 살펴보십시오. http://msdn.microsoft.com/en-us/magazine/cc337899.aspx 당신에게 매우 유용하다는 것을 증명하고, 포함 된 평행선 경로의 구현이 있습니다. – Egor
안녕하세요, 덧글에 대한 thx하지만 이미 이미 위의 통해 기존 경로를 복사 한 다른 브러시로 단일 경로를 복사하지 않았다 – Chandimal
http://blogs.msdn.com/b/mrochon/archive/2011/01 사용할 수 있습니다. /10/custom-line-caps-in-wpf.aspx 그런 다음 더 긴 선을 길이가 1 인 작은 연속 선으로 그리거나 사용자 정의 가장자리가 원하는대로 그려야합니다. –