문제

"M 0 L 10 10"과 같은 경로 데이터를 동등한 선/곡선 세그먼트 코드로 변환하는 도구가 있는지 궁금합니다.

현재 사용 중입니다.

string pathXaml = "<Path xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" Data=\"M 0 0 l 10 10\"/>";
Path path = (Path)System.Windows.Markup.XamlReader.Load(pathXaml);

XamlParser를 호출하는 것이 라인 세그먼트를 명시 적으로 만드는 것보다 훨씬 느린 것으로 보입니다. 그러나 많은 경로를 손으로 변환하는 것은 매우 지루합니다.

도움이 되었습니까?

해결책

이 프로그램은 변환을 수행합니다.http://stringtopathgeometry.codeplex.com/

다른 팁

Geometry Minilanguage에서 C# 또는 VB 코드를 생성하기위한 내장은 없지만 다음과 같이 만들 수 있습니다.

  • New-ing Up a PathGeometry에 대한 C# 또는 VB 코드를 방출하십시오.
  • 부르다 PathFigureCollection.Parse 당신의 경로 문자열에. 이것은 반환됩니다 PathFigureCollection 사례.
  • PathfigeRecollection을 반복하십시오. 각 그림에 대해 :
    • 새로운 PathFigure 객체에 대한 C# 또는 VB 코드를 작성하여 PathGeometry.figures Collection에 추가하십시오.
    • 그림의 세그먼트 컬렉션을 반복하십시오. 각 세그먼트에 대해 유형을 분석하고 적절한 종류의 경로를 새로 연결하고 속성을 설정하고 현재 경로 피지에 추가하기위한 유형 의존적 코드를 방출하십시오.

이것이 손으로 경로를 변환하는 것보다 다소 지루한 지 여부는 당신이 결정할 수있는 것만이지만 ... 아마도 당신이 처리 해야하는 다른 종류의 세그먼트 수에 달려있을 것입니다 (즉, 경로에 얼마나 많은 다른 종류의 세그먼트가 나타나는지에 달려 있습니다. 문자열), linesegments, arcsegments 등에 대한 별도의 코드를 작성해야하므로.

편집 : Anvaka에게 PathfigeRecollection.parse에 관심을 끌면서 원래 답변을 단순화 한 의견에 감사드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top