Я сделал штамп для какой-то игры, которую я делаю (в c #), это пользовательский контроль, который использует раскадровку, чтобы показывать несколько изображений друг за другом (например, слайд-шоу), чтобы он выглядел как вращающийся 3D-кристалл.Проблема заключается в запуске и остановке на определенном ключевом кадре.Кажется логичным использовать Pause () и Resume () для этого, но я не могу понять, как сделать паузу на точном ключевом кадре.
Некоторые люди используют для этого отдельный dispatcherTimer, но это не такдостаточно точный, чтобы остановить его на этом ключевом кадре.(например, если вы выбрасываете 4, он должен остановиться на изображении 4).
Итак, было бы здорово, если бы был какой-то метод, подобный этому:
TimeSpan keyTime = new TimeSpan(0,0,0,0,750); // 750 miliseconds
myStoryBoard.ResumeTo(keyTime); // <- doesn't exist as far as I know
Вот фрагментиз моей раскадровки в 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>
.....
И некоторые изображения, чтобы прояснить ситуацию:
![1](https://i.stack.imgur.com/1w8wJ.png)
![2](https://i.stack.imgur.com/bqaIw.png)
![3](https://i.stack.imgur.com/SuIc1.png)
![4](https://i.stack.imgur.com/bPPi6.png)