FrameworkElement.BeginStoryboard メソッド

定義

指定したストーリーボードに含まれるアクションのシーケンスを開始します。

オーバーロード

BeginStoryboard(Storyboard)

指定したストーリーボードに含まれるアクションのシーケンスを開始します。

BeginStoryboard(Storyboard, HandoffBehavior)

プロパティが既にアニメーション化されていた場合にどうするかを指定するオプションを使用して、指定したストーリーボードに含まれるアクションのシーケンスを開始します。

BeginStoryboard(Storyboard, HandoffBehavior, Boolean)

開始後のアニメーションの制御の状態を指定して、指定したストーリーボードに含まれるアクションのシーケンスを開始します。

BeginStoryboard(Storyboard)

指定したストーリーボードに含まれるアクションのシーケンスを開始します。

public:
 void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard -> unit
Public Sub BeginStoryboard (storyboard As Storyboard)

パラメーター

storyboard
Storyboard

開始するストーリーボード。

次の例では、リソースから を Storyboard 取得し、内部イベントがクラス処理されたときに それを Storyboard 実行します。

private void OnImage1Animate(object sender, RoutedEventArgs e)
{
    Storyboard s;

    s = (Storyboard)this.FindResource("RotateStoryboard");
    this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim s As Storyboard

    s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
    Me.BeginStoryboard(s)
End Sub

注釈

ほとんどの一般的なアニメーション シナリオでは、このメソッドは使用されません。 通常、マークアップで または BeginStoryboard 要素をStoryboard作成し、これらを要素のEventTriggerコンテンツとして配置します。 イベントによってトリガーされると、アニメーションが実行されます。 のほとんどのコントロールの Storyboard 側面は、マークアップで公開されているプロパティによって対処できます。

、パラメーター、またはそのパラメーターを指定falseしないisControllableシグネチャの場合、アニメーションに関連付けられているタイムラインクロックは、アニメーションが "Fill" 期間に達するとすぐに削除されます。 そのため、1 回実行した後にアニメーションを再起動することはできません。 アニメーションを制御するには、ストーリーボードに x:Name ディレクティブ が含まれているか、コード内の参照によってアクセスできる必要があります。

適用対象

BeginStoryboard(Storyboard, HandoffBehavior)

プロパティが既にアニメーション化されていた場合にどうするかを指定するオプションを使用して、指定したストーリーボードに含まれるアクションのシーケンスを開始します。

public:
 void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior)

パラメーター

storyboard
Storyboard

開始するストーリーボード。

handoffBehavior
HandoffBehavior

ストーリーボードに記述されたプロパティが既にアニメーション化されている場合に使用する動作を表す列挙値。

次の例では、リソースから を Storyboard 取得し、内部イベントがクラス処理されたときに それを Storyboard 実行します。

private void OnImage1Animate(object sender, RoutedEventArgs e)
{
    Storyboard s;

    s = (Storyboard)this.FindResource("RotateStoryboard");
    this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim s As Storyboard

    s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
    Me.BeginStoryboard(s)
End Sub

注釈

ほとんどの一般的なアニメーション シナリオでは、このメソッドは使用されません。 通常、マークアップで または BeginStoryboard 要素をStoryboard作成し、これらを要素のEventTriggerコンテンツとして配置します。 イベントによってトリガーされると、アニメーションが実行されます。 のほとんどのコントロールの Storyboard 側面は、マークアップで公開されているプロパティによって対処できます。

、パラメーター、またはそのパラメーターを指定falseしないisControllableシグネチャの場合、アニメーションに関連付けられているタイムラインクロックは、アニメーションが "Fill" 期間に達するとすぐに削除されます。 そのため、1 回実行した後にアニメーションを再起動することはできません。 アニメーションを制御するには、ストーリーボードに x:Name ディレクティブ が含まれているか、コード内の参照によってアクセスできる必要があります。

ハンドオフ動作は、 の BeginStoryboard属性として指定できます。

Compose HandoffBehavior の使用

を使用HandoffBehaviorClockComposeして、、AnimationTimeline、または AnimationClock をプロパティに適用Storyboardすると、そのプロパティに以前に関連付けられていたオブジェクトはシステム リソースを消費し続けます。タイミング システムはクロックを自動的に削除しません。

を使用 Composeして多数のクロックを適用する場合のパフォーマンスの問題を回避するには、アニメーション化されたプロパティの完了後に、作成クロックを削除する必要があります。 クロックを削除するには、いくつかの方法があります。

  • プロパティからすべてのクロックを削除するには、アニメーション化されたオブジェクトの ApplyAnimationClock(DependencyProperty, AnimationClock) または BeginAnimation(DependencyProperty, AnimationTimeline) メソッドを使用します。 アニメーション化するプロパティを 1 番目のパラメーターとして指定し、null を 2 番目として指定します。 これにより、 プロパティからすべてのアニメーション クロックが削除されます。

  • 特定の AnimationClock をクロックの一覧から削除するには、AnimationClockController プロパティを使用して ClockControllerを取得し、次に RemoveClockController メソッドを呼び出します。 これは通常、クロックの Completed イベント ハンドラーで実行されます。 によって制御ClockControllerControllerできるのはルート クロックのみです。子クロックの プロパティは を返しますnull。 また、クロックの Completed 有効期間が永遠の場合、イベントは発生しないことに注意してください。 その場合、ユーザーは を呼び出す Removeタイミングを決定する必要があります。

これは主に、有効期間が長いオブジェクトでのアニメーションの問題です。 オブジェクトがガベージ コレクションされると、そのクロックも切断され、ガベージ コレクションされます。

クロック オブジェクトについて詳しくは、「アニメーションとタイミング システムの概要」をご覧ください。

適用対象

BeginStoryboard(Storyboard, HandoffBehavior, Boolean)

開始後のアニメーションの制御の状態を指定して、指定したストーリーボードに含まれるアクションのシーケンスを開始します。

public:
 void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior, bool isControllable);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior, bool isControllable);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior * bool -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior, isControllable As Boolean)

パラメーター

storyboard
Storyboard

開始するストーリーボード。

handoffBehavior
HandoffBehavior

ストーリーボードに記述されたプロパティが既にアニメーション化されている場合に使用する動作を表す列挙値。

isControllable
Boolean

アニメーションを起動した後に、アニメーションを制御できるかどうか (一時停止できるかどうか) を宣言します。

注釈

ほとんどの一般的なアニメーション シナリオでは、このメソッドは使用されません。 通常、マークアップで または BeginStoryboard 要素をStoryboard作成し、これらを要素のEventTriggerコンテンツとして配置します。 イベントによってトリガーされると、アニメーションが実行されます。 のほとんどのコントロールの Storyboard 側面は、マークアップで公開されているプロパティによって対処できます。

、パラメーター、またはそのパラメーターを指定falseしないisControllableシグネチャの場合、アニメーションに関連付けられているタイムラインクロックは、アニメーションが "Fill" 期間に達するとすぐに削除されます。 そのため、1 回実行した後にアニメーションを再起動することはできません。 アニメーションを制御するには、ストーリーボードに x:Name ディレクティブ が含まれているか、コード内の参照によってアクセスできる必要があります。

ハンドオフ動作は、 の BeginStoryboard属性として指定できます。

Compose HandoffBehavior の使用

を使用HandoffBehaviorClockComposeして、、AnimationTimeline、または AnimationClock をプロパティに適用Storyboardすると、そのプロパティに以前に関連付けられていたオブジェクトはシステム リソースを消費し続けます。タイミング システムはクロックを自動的に削除しません。

を使用 Composeして多数のクロックを適用する場合のパフォーマンスの問題を回避するには、アニメーション化されたプロパティの完了後に、作成クロックを削除する必要があります。 クロックを削除するには、いくつかの方法があります。

  • プロパティからすべてのクロックを削除するには、アニメーション化されたオブジェクトの ApplyAnimationClock(DependencyProperty, AnimationClock) または BeginAnimation(DependencyProperty, AnimationTimeline) メソッドを使用します。 アニメーション化するプロパティを 1 番目のパラメーターとして指定し、null を 2 番目として指定します。 これにより、 プロパティからすべてのアニメーション クロックが削除されます。

  • 特定の AnimationClock をクロックの一覧から削除するには、AnimationClockController プロパティを使用して ClockControllerを取得し、次に RemoveClockController メソッドを呼び出します。 これは通常、クロックの Completed イベント ハンドラーで実行されます。 によって制御ClockControllerControllerできるのはルート クロックのみです。子クロックの プロパティは を返しますnull。 また、クロックの Completed 有効期間が永遠の場合、イベントは発生しないことに注意してください。 その場合、ユーザーは を呼び出す Removeタイミングを決定する必要があります。

これは主に、有効期間が長いオブジェクトでのアニメーションの問題です。 オブジェクトがガベージ コレクションされると、そのクロックも切断され、ガベージ コレクションされます。

クロック オブジェクトについて詳しくは、「アニメーションとタイミング システムの概要」をご覧ください。

適用対象