Pregunta

Sólo quiero preguntar si hay un camino en el que podía poner un objeto (círculo) al final de un camino de línea en particular.

Al igual que en esto:

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

En este momento, tengo el siguiente código para el seguimiento de la línea:

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

donde los datos de mi camino (por ejemplo M532,668 L523,695 361 663 101 678 117 638) varía.

mi animación se parece a esto ...

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

¿Alguna sugerencia?

¿Fue útil?

Solución

Hay por lo menos un par de maneras que usted puede hacer esto; que es mejor, probablemente, depende de la relación de la circunferencia de la línea.

Si el círculo es conceptualmente parte de la misma forma que la línea, cambiar su Path para incluir una elipse (arco) en el extremo de la línea. Esto podría hacerse cambiando la ruta de datos, ya sea mediante la adición de un círculo al final o mediante la adición de otra figura a la PathGeometry.

Si el círculo es conceptualmente un componente separado, y lo que desea para ese componente lugar al lado de la línea, que sólo puede utilizar un StackPanel con su conjunto de Orientación horizontal:

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

(Nota: en algunos casos, se puede hacer esto mediante la propiedad EndLineCap eso no funcionará en este caso, sin embargo, porque parece que desea que el círculo sea más grande que el grosor del trazo tapas de línea son siempre los mismos.. grosor que la línea.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top