Frage

Ich frage möchte nur, wenn es einen Weg gibt, wo ich ein Objekt setzen könnte (Kreis) am Ende eines bestimmten Leitungsweg.

Ähnlich wie folgt aus:

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

Im Moment habe ich den folgenden Code zum Verfolgen Sie die Zeile:

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

, wo die Daten von meinem Weg (z.B. M532,668 L523,695 361.663 101.678 117.638) variiert.

meine Animation sieht wie folgt aus ...

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

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Es gibt mindestens ein paar Möglichkeiten, wie Sie dies tun könnte; Welche ist die beste wahrscheinlich hängt von der Beziehung des Kreises auf die Linie.

Wenn der Kreis konzeptionell Teil der gleichen Form wie die Linie ist, Ihren Weg zu ändern, um eine Ellipse (Bogen) am Ende der Zeile aufzunehmen. Dies könnte durch eine Änderung der Pfaddaten erfolgen, entweder durch einen Kreis mit dem Ende des Hinzufügen oder durch Hinzufügen eines weitere Abbildung zum PathGeometry.

Wenn der Kreis ist vom Konzept her eine separate Komponente, und Sie wollen einfach nur Platz, dass Komponente neben die Linie, können Sie einfach einen Stackpanel mit seiner Ausrichtung Satz Horizontal verwenden:

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

(Hinweis: In einigen Szenarien können Sie dies tun, um die EndLineCap Eigenschaft verwendet das wird nicht funktioniert in diesem Fall aber, weil es so aussieht, wie Sie den Kreis wollen die Strichstärke größer sein als Line-Kappen sind immer gleich.. Dicke wie die Linie.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top