49

私はこのようなものを持っています:

barProgress.BeginAnimation(RangeBase.ValueProperty, new DoubleAnimation(
    barProgress.Value、dNextProgressValue、
    new Duration(TimeSpan.FromSeconds(dDuration)));

では、そのアニメーション ( ) をどのように停止しますDoubleAnimationか? 私がこれをやりたい理由は、新しいアニメーションを開始したいからです (これは機能しているようですが、わかりにくいです)。最終的に最後のアニメーションを停止します...

4

8 に答える 8

87

停止するにBeginAnimationは、2 番目の引数を に設定して再度呼び出しますnull

于 2008-08-21T15:47:49.053 に答える
32

ストーリーボードを使用してアニメーションを制御する場合は、アニメーションを制御可能として設定するために、2番目のパラメーターをtrueに設定してください。

public void Begin(
    FrameworkContentElement containingObject,
    **bool isControllable**
)
于 2008-08-31T10:08:30.913 に答える
18

BeginAnimation を停止するには 2 つの方法があります。1 つ目は、2 番目のパラメーターを null に設定して BeginAnimation を再度呼び出すことです。これにより、プロパティのすべてのアニメーションが削除され、値が元の値に戻ります。

その値をどのように使用しているかによっては、これが必要な動作ではない場合があります。2 番目の方法は、アニメーションの BeginTime を null に設定してから、それを使用して BeginAnimation を呼び出すことです。これにより、その特定のアニメーションが削除され、値が現在の位置に残されます。

DoubleAnimation myAnimation = new Animation();
// Initialize animation
...

// To start
element.BeginAnimation(Property, myAnimation);

// To stop and keep the current value of the animated property
myAnimation.BeginTime = null;
element.BeginAnimation(Property, myAnimation);
于 2012-02-24T18:35:06.627 に答える
10
<Trigger.EnterActions>
       <BeginStoryboard x:Name="myStory">
       .........
       </BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
       <StopStoryboard BeginStoryboardName="myStory"/>
</Trigger.ExitActions>
于 2015-11-02T07:51:04.437 に答える
8

私の場合、2 つのコマンドを使用する必要がありました。xaml にはトリガーを起動するボタンがあり、そのトリガーはストーリーボード アニメーションを起動します。

このコード ビハインドを使用して、アニメーションを停止するボタンを配置しました。

MyBeginStoryboard.Storyboard.Begin(this, true);
MyBeginStoryboard.Storyboard.Stop(this);

私はそれが好きではありませんが、ここでは本当にうまくいきます。試してみる!

于 2009-07-01T22:56:44.907 に答える
8

ベース値を再び有効値にしたい場合は、アニメーションがプロパティに影響を与えないようにする必要があります。ストーリーボード アニメーションでこれを行うには、次の 3 つの方法があります。

  • アニメーションの FillBehavior プロパティを Stop に設定します
  • ストーリーボード全体を削除する
  • 個々のプロパティからアニメーションを削除します

MSDN から

方法: ストーリーボードでアニメーション化した後にプロパティを設定する

于 2008-12-17T16:19:55.963 に答える
4

アニメーションを StoryBoard に配置します。ストーリーボードで Begin() と Stop() を呼び出して、アニメーションを開始して停止します。

于 2008-08-21T17:12:31.457 に答える
0

次のコードを使用できます。

[StoryBoardName].Remove([StoryBoardOwnerControl]);
于 2013-08-07T11:04:20.820 に答える