Я сделал кубик для какой-то игры, которую я делаю (в C#), это usercontrol, которая использует раскадровку, чтобы показывать несколько изображений друг за другом (например, слайд-шоу), так что это выглядит как катящийся 3D умереть. Проблема заключается в том, чтобы запустить и остановить его на определенном ключевом фрейме. Кажется логичным использовать Pause() и Resume() для этого, но я не могу понять, как сделать паузу в точном ключевом фрейме.Остановить раскадровку в точной ключевой рамке
Некоторые люди используют отдельный диспетчерTimer для этого, но это недостаточно точное, чтобы остановить его на этом ключевом кадре. (например, если вы бросаете 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>
.....
И некоторые изображения, чтобы сделать вещи яснее:
Возможно, будет легче создавать анимацию для каждого случая? –
@MaratKhasanov Это может быть действительно выполнимо, есть 36 случаев, но поскольку вы можете изменить начальную точку с помощью Seek(), мне понадобится 6. tx! Хотя я все равно хотел бы знать, есть ли подходящий способ. – Jesse
Вы поняли, как это сделать в конечном итоге? –