정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Storyboard 클래스

2013-12-13

Timeline을 사용하여 애니메이션을 제어하고 해당 자식 애니메이션에 대해 개체 및 속성 대상 지정 정보를 제공합니다.

Namespace:  System.Windows.Media.Animation
어셈블리:  System.Windows(System.Windows.dll)
XMLNS for XAML: xmlns에 매핑되지 않습니다.

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

XAML 값

oneOrMoreChildTimelines

Timeline에서 파생되는 클래스에 대한 하나 이상의 개체 요소입니다. 다른 Storyboard이거나 여러 가지 애니메이션 형식일 수 있습니다.

Storyboard 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드StoryboardStoryboard 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성AutoReverseTimeline이 정방향으로 반복을 완료한 뒤 역방향으로 재생되는지 여부를 나타내는 값을 가져오거나 설정합니다. (Timeline에서 상속됨)
Public 속성BeginTimeTimeline을 시작할 시간을 가져오거나 설정합니다. (Timeline에서 상속됨)
Public 속성Children자식 Timeline 개체의 컬렉션을 가져옵니다.
Public 속성Dispatcher이 개체와 관련된 Dispatcher를 가져옵니다. (DependencyObject에서 상속됨)
Public 속성Duration반복을 제외하고 이 Timeline이 재생되는 시간을 가져오거나 설정합니다. (Timeline에서 상속됨)
Public 속성FillBehavior활성 기간의 끝에 도달한 후 애니메이션의 동작을 지정하는 값을 가져오거나 설정합니다. (Timeline에서 상속됨)
Public 속성RepeatBehavior이 Timeline의 반복 동작을 가져오거나 설정합니다. (Timeline에서 상속됨)
Public 속성SpeedRatioTimeline에 대한 진행 속도로 부모에 상대적인 비율을 가져오거나 설정합니다. (Timeline에서 상속됨)
맨 위

  이름설명
연결된 Public 속성TargetName애니메이션을 적용할 개체의 이름을 가져오거나 설정합니다.
연결된 Public 속성TargetProperty애니메이션을 적용할 속성의 이름을 가져오거나 설정합니다.
맨 위

  이름설명
Public 메서드BeginStoryboard와 연결된 애니메이션 집합을 시작합니다.
Public 메서드CheckAccess호출 스레드에서 이 개체에 액세스할 수 있는지 여부를 확인합니다. (DependencyObject에서 상속됨)
Public 메서드ClearValue종속성 속성의 로컬 값을 지웁니다. (DependencyObject에서 상속됨)
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetAnimationBaseValueWindows Phone 종속성 속성에 대해 설정되어 있고 애니메이션이 활성 상태가 아닐 때 적용되는 기준 값을 반환합니다. (DependencyObject에서 상속됨)
Public 메서드GetCurrentStateStoryboard의 Clock 상태를 가져옵니다.
Public 메서드GetCurrentTimeStoryboard의 현재 시간을 가져옵니다.
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드정적 멤버GetTargetName지정된 Timeline 개체의 TargetName를 가져옵니다.
Public 메서드정적 멤버GetTargetProperty지정된 Timeline 개체의 TargetProperty를 가져옵니다.
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetValueDependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다. (DependencyObject에서 상속됨)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드PauseStoryboard와 연결된 애니메이션 Clock을 일시 중지합니다.
Public 메서드ReadLocalValue로컬 값이 설정된 경우, 종속성 속성의 로컬 값을 반환합니다. (DependencyObject에서 상속됨)
Public 메서드ResumeStoryboard와 연결된 애니메이션 Clock 또는 런타임 상태를 다시 시작합니다.
Public 메서드SeekStoryboard를 지정된 애니메이션 위치로 이동합니다. 다음 클록 틱이 발생하면 Storyboard에서 요청된 검색을 수행합니다.
Public 메서드SeekAlignedToLastTickStoryboard를 지정된 애니메이션 위치로 즉시(동기적으로) 이동합니다.
Public 메서드정적 멤버SetTarget지정된 Timeline이 지정된 개체를 대상으로 사용하도록 설정합니다.
Public 메서드정적 멤버SetTargetName지정된 Timeline이 지정된 이름의 개체를 대상으로 사용하도록 설정합니다.
Public 메서드정적 멤버SetTargetProperty지정된 Timeline이 지정된 종속성 속성을 대상으로 사용하도록 설정합니다.
Public 메서드SetValueDependencyObject에 종속성 속성의 로컬 값을 설정합니다. (DependencyObject에서 상속됨)
Public 메서드SkipToFillStoryboard Clock의 현재 시간을 활성 기간의 끝으로 이동합니다.
Public 메서드StopStoryboard를 중지합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
맨 위

  이름설명
Public 이벤트CompletedStoryboard 개체의 재생이 완료되면 발생합니다. (Timeline에서 상속됨)
맨 위

  이름설명
Public 필드정적 멤버TargetNamePropertyTargetName 연결된 속성을 식별합니다.
Public 필드정적 멤버TargetPropertyPropertyTargetProperty 연결된 속성을 식별합니다.
맨 위

Storyboard를 다른 애니메이션 개체(예: DoubleAnimation) 및 다른 Storyboard 개체의 컨테이너로 간주하여, 다른 Storyboard 개체에 중첩하거나 각 Storyboard에 대해 별도로 BeginTime 값을 지정할 수 있습니다. 중첩된 스토리보드를 사용하여 복잡한 애니메이션 순서를 간단히 조정할 수 있습니다. 각 자식 Storyboard는 부모 Storyboard가 시작할 때까지 대기했다가 카운트다운을 시작한 뒤 시작합니다.

Storyboard 개체의 대화형 메서드를 사용하여 애니메이션을 시작, 일시 중지, 다시 시작 및 중지할 수 있습니다. 자세한 내용은 Windows Phone의 애니메이션, 동작 및 출력을 참조하세요.

참고참고:

페이지의 생성자에서 Begin과 같은 Storyboard 멤버를 호출하지 마세요. 이렇게 하면 애니메이션이 자동으로 실패합니다.

다음 예제에서는 Begin, Stop, PauseResume 메서드를 사용하여 Storyboard(애니메이션)의 재생을 제어하는 방법을 보여 줍니다. 사용자는 버튼 집합을 사용하여 이러한 메서드를 호출할 수 있습니다.


<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

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시: