4
ストーリーボードを使用して複数の画像を(スライドショーのように)表示するユーザーコントロールです(C#で作成しています)死ぬ。問題は、特定のkeyFrameで開始および停止していることです。これはPause()とResume()を論理的に使っているようですが、正確なkeyFrameで一時停止する方法はわかりません。正確なkeyFrameでストーリーボードを停止する
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>
.....
そして、いくつかの画像を、物事をより明確にします:
それぞれのケースでアニメーションを作成する方が簡単でしょうか? –
@MaratKhasanov実際に実行できるかもしれませんが、36のケースがありますが、Seek()を使用して開始点を変更できるので、私は6. txが必要になります!私はまだ正しい方法があるかどうかを知りたいですが。 – Jesse
あなたは最終的にそれを行う方法を考え出しましたか? –