我只想问,如果有一种方法在那里我可以在一个特定的行路径的端部把一个对象(圆)。

类似这样:

--------------------------------------------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 361663 101678 117638)而变化。

我的动画看起来像这样...

<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>

任何建议?

有帮助吗?

解决方案

有至少一对夫妇,你可以做到这一点的方法;这是最好的可能依赖于圆到线之间的关系。

如果圆在概念上相同的形状线的一部分,改变你的路径以包括在该行的末尾的椭圆(弧)。这可以通过改变路径数据来进行,或者通过将一个圆的端部或通过添加另一图到的PathGeometry。

如果圆圈在概念上是独立的组件,而你只是想地方,旁边的线条组成,你可以只使用一个StackPanel的定向设定为水平:

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

(注:在某些情况下,你可以使用EndLineCap财产,但因为它看起来像你想的圈子比笔画粗细更大做到这一点,在这种情况下将无法正常工作管线盖都是一样的。厚度的行。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top