2010-03-03 4 views
0

특정 줄 경로의 끝에 개체 (원)를 넣을 수있는 방법이 있는지 물어보고 싶습니다.WPF : 줄 경로/줄 끝에 개체/모양을 넣는 방법은 무엇입니까?

이 유사 :

--------------------------------------------O 
Start          End 

지금, 나는 선을 추적하는 다음과 같은 코드가 있습니다

<Grid x:Name="LayoutRoot" > 
    <Path Stroke="Red" StrokeThickness="4" x:Name="path4" Data="{Binding MyProperty1}" > 
    <Path.StrokeDashArray> 
     <System:Double>500</System:Double> 
     <System:Double>1000</System:Double> 
    </Path.StrokeDashArray> 
    </Path> 
</Grid> 

어디에 내 경로의 데이터 (예 : M532,668 L523,695 361,663을 101,678 117,638)가 다릅니다.

내 애니메이션

<Storyboard x:Key="Story1" RepeatBehavior="Forever"> 
    <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" 
           Storyboard.TargetName="path1" 
           Storyboard.TargetProperty="(Shape.StrokeDashOffset)"> 
    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="500"/> 
    <SplineDoubleKeyFrame KeyTime="00:00:08" Value="0"/> 
    </DoubleAnimationUsingKeyFrames> 
</Storyboard> 

어떤 제안 ... 다음과 같습니다?

답변

4

이렇게 할 수있는 방법은 적어도 두 가지 있습니다. 이는 아마도 선과 원의 관계에 따라 달라질 수 있습니다.

원이 개념적으로 선과 같은 모양의 일부인 경우 선의 끝에 타원 (호)을 포함하도록 경로를 변경하십시오. 이 작업은 끝점에 원을 추가하거나 PathGeometry에 다른 Figure를 추가하여 Path 데이터를 변경하여 수행 할 수 있습니다.

원 개념적으로 별도의 구성 요소이며, 그 방향이 수평으로 설정하여 그냥 해당 구성 요소 라인 옆에, 당신은 단지 StackPanel에 사용할 수를 배치 할 경우

<StackPanel Orientation="Horizontal"> 
    <Path /> <!-- The line --> 
    <Ellipse /> <!-- The circle --> 
</StackPanel> 

(참고 :에 일부 시나리오에서는 EndLineCap 속성을 사용하여이 작업을 수행 할 수 있습니다.이 경우 원이 획 두께보다 커서 원하는 모양이므로 작동하지 않습니다. 선의 끝은 항상 선의 두께와 동일합니다.)

+0

Path.Data의 'Data'에는 '데이터 포인트'만 포함됩니다. 경로와 함께 원/타원을 어떻게 만들 수 있습니까? – abramlimpin

+0

Path.Data는 기하학입니다. 이것을 LineSegment와 ArcSegment 또는 LineGeometry와 EllipseGeometry를 포함하는 CombinedGeometry 또는 GeometryGroup으로 구성된 PathGeometry로 설정하십시오. – itowlson

관련 문제