Ich habe einen Würfel für ein Spiel gemacht (in C#), es ist ein Usercontrol, das ein Storyboard verwendet, um mehrere Bilder hintereinander zu zeigen (wie eine Diashow), so dass es wie ein rollendes 3D aussieht sterben. Das Problem ist, es bei einem bestimmten Schlüsselrahmen zu starten und zu stoppen. Es scheint logisch, dafür Pause() und Resume() zu verwenden, aber ich kann nicht herausfinden, wie man bei einem exakten keyFrame pausiert.Stop Storyboard auf exact keyFrame
Einige Leute verwenden einen separaten DispatcherTimer, um dies zu tun, aber das ist nicht präzise genug, um es bei genau diesem Schlüsselbild zu stoppen. (Zum Beispiel, wenn Sie 4 werfen, muss es auf dem 4 Bild stoppen).
Also, es wäre toll, wenn es irgendeine Methode wie folgt ist:
TimeSpan keyTime = new TimeSpan(0,0,0,0,750); // 750 miliseconds
myStoryBoard.ResumeTo(keyTime); // <- doesn't exist as far as I know
Hier ist ein Ausschnitt aus meinem Storyboard in XAML:
<Storyboard x:Key="DieStoryBoard" RepeatBehavior="Forever">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="image1">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:0.05">
<DiscreteObjectKeyFrame.Value>
<Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="image2">
<DiscreteObjectKeyFrame KeyTime="0:0:0.05">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:0.10">
<DiscreteObjectKeyFrame.Value>
<Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="image3">
<DiscreteObjectKeyFrame KeyTime="0:0:0.10">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:0.15">
<DiscreteObjectKeyFrame.Value>
<Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
.....
Und einige Bilder der Dinge klarer zu machen:
Vielleicht ist es einfacher, Animationen für jeden Fall zu komponieren? –
@MaratKhasanov Das kann tatsächlich machbar sein, es gibt 36 Fälle, aber da Sie den Startpunkt mit Seek() ändern können, müsste ich 6. tx! Obwohl ich immer noch gerne wissen würde, ob es einen richtigen Weg gibt. – Jesse
Haben Sie herausgefunden, wie es geht? –