Domanda

Voglio solo chiedere se c'è un modo in cui ho potuto mettere un oggetto (cerchio) al termine di un particolare percorso di linea.

simile al seguente:

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

In questo momento, ho il seguente codice per tracciare la linea:

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

dove i dati del mio percorso (per esempio M532,668 L523,695 361.663 101.678 117.638) varia.

mia animazione assomiglia a questo ...

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

Qualche suggerimento?

È stato utile?

Soluzione

Ci sono almeno un paio di modi si potrebbe fare questo; che è meglio, probabilmente dipende dal rapporto del cerchio alla linea.

Se il cerchio è concettualmente parte della stessa forma come la linea, modificare il percorso per includere un ellisse (ARC) alla fine della linea. Ciò può essere ottenuto cambiando il percorso di dati, o aggiungendo un cerchio alla fine o aggiungendo un altro Figura alla PathGeometry.

Se il cerchio è concettualmente un componente separato, e si vuole solo luogo che componente accanto alla linea, si può semplicemente utilizzare uno StackPanel con il suo set di Orientamento alla orizzontale:

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

(Nota: in alcuni scenari, si può fare questo usando la proprietà EndLineCap che non funziona in questo caso, però, perché sembra che si desidera che il cerchio sia più grande di quanto lo spessore del tratto di linea tappi sono sempre gli stessi.. spessore della linea.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top