Storyboard クラス

2013/12/12

タイムラインを使用してアニメーションを制御し、子アニメーションのオブジェクトやプロパティのターゲット化情報を提供します。

System.Object
  System.Windows.DependencyObject
    System.Windows.Media.Animation.Timeline
      System.Windows.Media.Animation.Storyboard

Namespace:  System.Windows.Media.Animation
アセンブリ:  System.Windows (System.Windows.dll 内)
XAML の XMLNS: xmlns にマップされていません。

[ContentPropertyAttribute("Children", true)]
public sealed class Storyboard : Timeline
<Storyboard ...>
  oneOrMoreChildTimelines
</Storyboard>

XAML 値

oneOrMoreChildTimelines

Timeline の派生クラスの 1 つ以上のオブジェクト要素。これには、別の Storyboard、またはさまざまな任意のアニメーション型を使用できます。

Storyboard 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドStoryboardStoryboard クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティAutoReverse順方向の反復の完了後にタイムラインを逆方向に再生するかどうかを示す値を取得または設定します。 (Timeline から継承されます。)
パブリック プロパティBeginTimeこの Timeline を開始する時間を取得または設定します。 (Timeline から継承されます。)
パブリック プロパティChildrenTimeline オブジェクトのコレクションを取得します。
パブリック プロパティDispatcherこのオブジェクトに関連付けられている Dispatcher を取得します。 (DependencyObject から継承されます。)
パブリック プロパティDuration繰り返しをカウントせずに、このタイムラインの再生に要する時間を取得または設定します。 (Timeline から継承されます。)
パブリック プロパティFillBehaviorアクティブな期間の終わりに到達した後のアニメーションの動作を指定する値を取得または設定します。 (Timeline から継承されます。)
パブリック プロパティRepeatBehaviorこのタイムラインの繰り返し動作を取得または設定します。 (Timeline から継承されます。)
パブリック プロパティSpeedRatioこの Timeline の時間の進行の速度 (親に対する相対的な速度) を取得または設定します。 (Timeline から継承されます。)
このページのトップへ

  名前説明
アタッチされるパブリック プロパティTargetNameアニメーション化するオブジェクトの名前を取得または設定します。
アタッチされるパブリック プロパティTargetPropertyアニメーション化するプロパティの名前を取得または設定します。
このページのトップへ

  名前説明
パブリック メソッドBeginストーリーボードに関連付けられている一連のアニメーションを開始します。
パブリック メソッドCheckAccess呼び出しスレッドが、このオブジェクトにアクセスできるかどうかを判断します。 (DependencyObject から継承されます。)
パブリック メソッドClearValue依存関係プロパティのローカル値をクリアします。 (DependencyObject から継承されます。)
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetAnimationBaseValueアニメーションがアクティブでない場合に適用される、Windows Phone 依存関係プロパティに対し設定されている基本値を返します。 (DependencyObject から継承されます。)
パブリック メソッドGetCurrentStateストーリーボードのクロックの状態を取得します。
パブリック メソッドGetCurrentTimeストーリーボードの現在時刻を取得します。
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッド静的メンバーGetTargetName指定した Timeline オブジェクトの TargetName を取得します。
パブリック メソッド静的メンバーGetTargetProperty指定した Timeline オブジェクトの TargetProperty を取得します。
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドGetValueDependencyObject から依存関係プロパティの現在の有効値を返します。 (DependencyObject から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドPauseストーリーボードに関連付けられているアニメーション クロックを一時停止します。
パブリック メソッドReadLocalValueローカル値が設定されている場合、依存関係プロパティのローカル値を返します。 (DependencyObject から継承されます。)
パブリック メソッドResumeストーリーボードに関連付けられているアニメーション クロック (ランタイム状態) を再開します。
パブリック メソッドSeek指定されたアニメーション位置にストーリーボードを移動します。ストーリーボードは、クロックが次の目盛りを刻んだときに、要求されたシークを実行します。
パブリック メソッドSeekAlignedToLastTick指定されたアニメーション位置まで直ち (同期的) にストーリーボードを移動します。
パブリック メソッド静的メンバーSetTarget指定した Timeline が、指定したオブジェクトを対象にするように設定します。
パブリック メソッド静的メンバーSetTargetName指定した Timeline が、指定した名前のオブジェクトを対象にするように設定します。
パブリック メソッド静的メンバーSetTargetProperty指定した Timeline が、指定した依存関係プロパティを対象にするように指定します。
パブリック メソッドSetValueDependencyObject で依存関係プロパティのローカル値を設定します。 (DependencyObject から継承されます。)
パブリック メソッドSkipToFillストーリーボードの時計の現在時刻をアクティブ期間の最後まで進めます。
パブリック メソッドStopストーリーボードを停止します。
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
このページのトップへ

  名前説明
パブリック イベントCompletedStoryboard オブジェクトが再生を完了したときに発生します。 (Timeline から継承されます。)
このページのトップへ

  名前説明
パブリック フィールド静的メンバーTargetNamePropertyTargetName 添付プロパティを識別します。
パブリック フィールド静的メンバーTargetPropertyPropertyTargetProperty 添付プロパティを識別します。
このページのトップへ

Storyboard は、他の Storyboard オブジェクトまたは他のアニメーション オブジェクト (DoubleAnimation など) のコンテナーと考えることができます。つまり、複数の Storyboard オブジェクトを入れ子にし、それぞれの Storyboard に対して個別に BeginTime 値を指定できます。入れ子になったストーリーボードを使用すると、複雑な一連のアニメーションを調整するのに役立ちます。各子 Storyboard は、その親 Storyboard が開始されるまで待機し、カウントダウンしてから順番に開始します。

Storyboard オブジェクトの対話型メソッドを使用してアニメーションを開始、一時停止、再開、および停止することができます。詳細については、「Windows Phone のアニメーション、モーション、および出力」を参照してください。

メモメモ:

ページのコンストラクター内で Storyboard のメンバー (Begin など) を呼び出さないでください。アニメーションが通知なしで失敗します。

次の例では、BeginStopPauseResume の各メソッドを使用して、ストーリーボード (アニメーション) の再生を制御する方法を示します。ユーザーは一連のボタンを使用して、これらのメソッドを呼び出すことができます。


<phone:PhoneApplicationPage x:Class="interactive_animation.Page"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="800" d:DesignWidth="480">
    <StackPanel>
        <TextBlock Margin="10" TextWrapping="Wrap">This sample uses the Begin, Pause, Resume, and Stop methods to control an animation.</TextBlock>
        <Canvas>
            <Canvas.Resources>
                <Storyboard x:Name="myStoryboard">

                    <!-- Animate the center point of the ellipse. -->
                    <PointAnimation Storyboard.TargetProperty="Center"
          Storyboard.TargetName="MyAnimatedEllipseGeometry"
          Duration="0:0:5"
          From="20,200"
          To="400,100"
          RepeatBehavior="Forever" />
                </Storyboard>
            </Canvas.Resources>

            <Path Fill="Blue">
                <Path.Data>
                    <!-- Describes an ellipse. -->
                    <EllipseGeometry x:Name="MyAnimatedEllipseGeometry"
          Center="20,20" RadiusX="15" RadiusY="15" />
                </Path.Data>
            </Path>

            <StackPanel Orientation="Horizontal" Canvas.Left="0" Canvas.Top="265">
                <!-- Button that begins animation. -->
                <Button Click="Animation_Begin"
        Content="Begin" />

                <!-- Button that pauses Animation. -->
                <Button Click="Animation_Pause"
        Content="Pause" />

                <!-- Button that resumes Animation. -->
                <Button Click="Animation_Resume"
        Content="Resume" />

                <!-- Button that stops Animation. Stopping the animation returns the
        ellipse to its original location. -->
                <Button Click="Animation_Stop"
        Content="Stop" />
            </StackPanel>

        </Canvas>
    </StackPanel>
</phone:PhoneApplicationPage>



private void Animation_Begin(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
private void Animation_Pause(object sender, RoutedEventArgs e)
{
    myStoryboard.Pause();
}
private void Animation_Resume(object sender, RoutedEventArgs e)
{
    myStoryboard.Resume();
}
private void Animation_Stop(object sender, RoutedEventArgs e)
{
    myStoryboard.Stop();
}


次の例では、コードを使用して Storyboard を作成する方法を示します。


private void Create_And_Run_Animation(object sender, EventArgs e)
{
    // Create a red rectangle that will be the target
    // of the animation.
    Rectangle myRectangle = new Rectangle();
    myRectangle.Width = 200;
    myRectangle.Height = 200;
    Color myColor = Color.FromArgb(255, 255, 0, 0);
    SolidColorBrush myBrush = new SolidColorBrush();
    myBrush.Color = myColor;
    myRectangle.Fill = myBrush;

    // Add the rectangle to the tree.
    LayoutRoot.Children.Add(myRectangle);

    // Create a duration of 2 seconds.
    Duration duration = new Duration(TimeSpan.FromSeconds(2));

    // Create two DoubleAnimations and set their properties.
    DoubleAnimation myDoubleAnimation1 = new DoubleAnimation();
    DoubleAnimation myDoubleAnimation2 = new DoubleAnimation();

    myDoubleAnimation1.Duration = duration;
    myDoubleAnimation2.Duration = duration;

    Storyboard sb = new Storyboard();
    sb.Duration = duration;

    sb.Children.Add(myDoubleAnimation1);
    sb.Children.Add(myDoubleAnimation2);

    Storyboard.SetTarget(myDoubleAnimation1, myRectangle);
    Storyboard.SetTarget(myDoubleAnimation2, myRectangle);

    // Set the attached properties of Canvas.Left and Canvas.Top
    // to be the target properties of the two respective DoubleAnimations.
    Storyboard.SetTargetProperty(myDoubleAnimation1, new PropertyPath("(Canvas.Left)"));
    Storyboard.SetTargetProperty(myDoubleAnimation2, new PropertyPath("(Canvas.Top)"));

    myDoubleAnimation1.To = 200;
    myDoubleAnimation2.To = 200;

    // Make the Storyboard a resource.
    LayoutRoot.Resources.Add("unique_id", sb);

    // Begin the animation.
    sb.Begin();
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

表示:
© 2015 Microsoft