다음을 통해 공유


Storyboard.SetSpeedRatio 메서드

정의

Clock에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

오버로드

SetSpeedRatio(Double)

Clock에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

SetSpeedRatio(FrameworkContentElement, Double)

Clock 에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

SetSpeedRatio(FrameworkElement, Double)

Clock 에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

SetSpeedRatio(Double)

Clock에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

public:
 void SetSpeedRatio(double speedRatio);
public void SetSpeedRatio (double speedRatio);
member this.SetSpeedRatio : double -> unit
Public Sub SetSpeedRatio (speedRatio As Double)

매개 변수

speedRatio
Double

스토리보드의 새 대화형 속도 비율인 0보다 큰 유한 값입니다. 이 값에 스토리보드의 SpeedRatio 값을 곱해 스토리보드의 유효 속도를 결정합니다. 이 값은 스토리보드의 SpeedRatio 속성을 덮어쓰지 않습니다. 예를 들어 이 메서드를 호출하고 SpeedRatio 가 0.5인 스토리보드에 대해 대화형 속도 비율을 3으로 지정하면 스토리보드의 유효 속도가 1.5가 됩니다.

설명

제어 가능한 storyboard 수 일시 중지, 다시 시작, 검색, 중지 및 제거할 수 있습니다. 스토리 보드를 코드에서 제어할 수 있도록 해당 스토리 보드의 오버 로드를 사용 해야 합니다 Begin 메서드를 지정 하 고 true 제어할 수 있도록 합니다. 예를 들어 참조 방법:는 Storyboard를 시작한 후 제어입니다.

적용 대상

SetSpeedRatio(FrameworkContentElement, Double)

Clock 에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

public:
 void SetSpeedRatio(System::Windows::FrameworkContentElement ^ containingObject, double speedRatio);
public void SetSpeedRatio (System.Windows.FrameworkContentElement containingObject, double speedRatio);
member this.SetSpeedRatio : System.Windows.FrameworkContentElement * double -> unit
Public Sub SetSpeedRatio (containingObject As FrameworkContentElement, speedRatio As Double)

매개 변수

containingObject
FrameworkContentElement

Begin(FrameworkContentElement, Boolean) 메서드가 호출되었을 때 지정된 개체입니다. 이 개체에는 이 스토리보드 및 해당 자식에 대해 생성된 Clock 개체가 포함됩니다.

speedRatio
Double

스토리보드의 새 대화형 속도 비율인 0보다 큰 유한 값입니다. 이 값에 스토리보드의 SpeedRatio 값을 곱해 스토리보드의 유효 속도를 결정합니다. 이 값은 스토리보드의 SpeedRatio 속성을 덮어쓰지 않습니다. 예를 들어 이 메서드를 호출하고 SpeedRatio 가 0.5인 스토리보드에 대해 대화형 속도 비율을 3으로 지정하면 스토리보드의 유효 속도가 1.5가 됩니다.

예제

다음 예제에서는 제어 가능한 storyboard를 사용 하 여 애니메이션 효과 TextEffect입니다. 합니다 TextEffect 내에 포함 된를 FrameworkContentElement의 범위 이름을 지정 합니다.

/*
    This example shows how to control
    a storyboard after it has started.

*/

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
using System.Windows.Documents;

namespace Microsoft.Samples.Animation.AnimatingWithStoryboards
{
    public class FrameworkContentElementControlStoryboardExample : FlowDocument
    {
    
        private Storyboard myStoryboard;
        
        public FrameworkContentElementControlStoryboardExample()
        {
        
            // Create a name scope for the document.
            NameScope.SetNameScope(this, new NameScope());        
            this.Background = Brushes.White;
            
            // Create a run of text.
            Run theText = new Run( 
                "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." + 
                "Ut non lacus. Nullam a ligula id leo adipiscing ornare." +
                " Duis mattis. ");   
                
            // Create a TextEffect
            TextEffect animatedSpecialEffect = new TextEffect();
            animatedSpecialEffect.Foreground = Brushes.OrangeRed;
            animatedSpecialEffect.PositionStart = 0;
            animatedSpecialEffect.PositionCount = 0;
            
            // Assign the TextEffect a name by 
            // registering it with the page, so that
            // it can be targeted by storyboard
            // animations            
            this.RegisterName("animatedSpecialEffect", animatedSpecialEffect);  
            
            // Apply the text effect to the run.
            theText.TextEffects = new TextEffectCollection();
            theText.TextEffects.Add(animatedSpecialEffect);
            
            // Create a paragraph to contain the run.
            Paragraph animatedParagraph = new Paragraph(theText);
            animatedParagraph.Background = Brushes.LightGray;
            animatedParagraph.Padding = new Thickness(20);
   
            this.Blocks.Add(animatedParagraph);            
            BlockUIContainer controlsContainer = new BlockUIContainer();                
            
            //
            // Create an animation and a storyboard to animate the
            // text effect.
            //
            Int32Animation countAnimation = 
                new Int32Animation(0, 127, TimeSpan.FromSeconds(10)); 
            Storyboard.SetTargetName(countAnimation, "animatedSpecialEffect");
            Storyboard.SetTargetProperty(countAnimation, 
                new PropertyPath(TextEffect.PositionCountProperty));
            myStoryboard = new Storyboard();
            myStoryboard.Children.Add(countAnimation);
            
            //
            // Create some buttons to control the storyboard
            // and a panel to contain them.
            //
            StackPanel buttonPanel = new StackPanel();
            buttonPanel.Orientation = Orientation.Vertical;
            Button beginButton = new Button();
            beginButton.Content = "Begin";
            beginButton.Click += new RoutedEventHandler(beginButton_Clicked);            
            buttonPanel.Children.Add(beginButton);
            Button pauseButton = new Button();
            pauseButton.Content = "Pause";
            pauseButton.Click +=new RoutedEventHandler(pauseButton_Clicked);
            buttonPanel.Children.Add(pauseButton);
            Button resumeButton = new Button();
            resumeButton.Content = "Resume";
            resumeButton.Click +=new RoutedEventHandler(resumeButton_Clicked);
            buttonPanel.Children.Add(resumeButton);
            Button skipToFillButton = new Button();
            skipToFillButton.Content = "Skip to Fill";
            skipToFillButton.Click +=new RoutedEventHandler(skipToFillButton_Clicked);
            buttonPanel.Children.Add(skipToFillButton);
            Button setSpeedRatioButton = new Button();
            setSpeedRatioButton.Content = "Triple Speed";
            setSpeedRatioButton.Click +=new RoutedEventHandler(setSpeedRatioButton_Clicked);
            buttonPanel.Children.Add(setSpeedRatioButton);
            Button stopButton = new Button();
            stopButton.Content = "Stop";
            stopButton.Click +=new RoutedEventHandler(stopButton_Clicked);
            buttonPanel.Children.Add(stopButton);
            Button removeButton = new Button();
            removeButton.Content = "Remove";
            removeButton.Click +=new RoutedEventHandler(removeButton_Clicked);
            buttonPanel.Children.Add(removeButton); 
   
            controlsContainer.Child = buttonPanel; 
            this.Blocks.Add(controlsContainer);
        }
        
        // Begins the storyboard.
        private void beginButton_Clicked(object sender, RoutedEventArgs args)
        {
            // Specifying "true" as the second Begin parameter
            // makes this storyboard controllable.
            myStoryboard.Begin(this, true);          
        }
        
        // Pauses the storyboard.
        private void pauseButton_Clicked(object sender, RoutedEventArgs args)
        {
             myStoryboard.Pause(this);          
        }
        
        // Resumes the storyboard.
        private void resumeButton_Clicked(object sender, RoutedEventArgs args)
        {
             myStoryboard.Resume(this);          
        }     
        
        // Advances the storyboard to its fill period.
        private void skipToFillButton_Clicked(object sender, RoutedEventArgs args)
        {
             myStoryboard.SkipToFill(this);          
        } 
        
        // Updates the storyboard's speed.
        private void setSpeedRatioButton_Clicked(object sender, RoutedEventArgs args)
        {
            // Makes the storyboard progress three times as fast as normal.
            myStoryboard.SetSpeedRatio(this, 3);          
        }           
        
        // Stops the storyboard.
        private void stopButton_Clicked(object sender, RoutedEventArgs args)
        {
             myStoryboard.Stop(this);          
        }     
        
        // Removes the storyboard.
        private void removeButton_Clicked(object sender, RoutedEventArgs args)
        {
             myStoryboard.Remove(this);          
        }           
    }
}
'
'    This example shows how to control
'    a storyboard after it has started.
'
'


Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes
Imports System.Windows.Media.Animation
Imports System.Windows.Documents


Namespace Microsoft.Samples.Animation.AnimatingWithStoryboards
    Public Class FrameworkContentElementControlStoryboardExample
        Inherits FlowDocument

        Private myStoryboard As Storyboard

        Public Sub New()

            ' Create a name scope for the document.
            NameScope.SetNameScope(Me, New NameScope())
            Me.Background = Brushes.White

            ' Create a run of text.
            Dim theText As New Run("Lorem ipsum dolor sit amet, consectetuer adipiscing elit." & "Ut non lacus. Nullam a ligula id leo adipiscing ornare." & " Duis mattis. ")

            ' Create a TextEffect
            Dim animatedSpecialEffect As New TextEffect()
            animatedSpecialEffect.Foreground = Brushes.OrangeRed
            animatedSpecialEffect.PositionStart = 0
            animatedSpecialEffect.PositionCount = 0

            ' Assign the TextEffect a name by 
            ' registering it with the page, so that
            ' it can be targeted by storyboard
            ' animations            
            Me.RegisterName("animatedSpecialEffect", animatedSpecialEffect)

            ' Apply the text effect to the run.
            theText.TextEffects = New TextEffectCollection()
            theText.TextEffects.Add(animatedSpecialEffect)

            ' Create a paragraph to contain the run.
            Dim animatedParagraph As New Paragraph(theText)
            animatedParagraph.Background = Brushes.LightGray
            animatedParagraph.Padding = New Thickness(20)

            Me.Blocks.Add(animatedParagraph)
            Dim controlsContainer As New BlockUIContainer()

            '
            ' Create an animation and a storyboard to animate the
            ' text effect.
            '
            Dim countAnimation As New Int32Animation(0, 127, TimeSpan.FromSeconds(10))
            Storyboard.SetTargetName(countAnimation, "animatedSpecialEffect")
            Storyboard.SetTargetProperty(countAnimation, New PropertyPath(TextEffect.PositionCountProperty))
            myStoryboard = New Storyboard()
            myStoryboard.Children.Add(countAnimation)

            '
            ' Create some buttons to control the storyboard
            ' and a panel to contain them.
            '
            Dim buttonPanel As New StackPanel()
            buttonPanel.Orientation = Orientation.Vertical
            Dim beginButton As New Button()
            beginButton.Content = "Begin"
            AddHandler beginButton.Click, AddressOf beginButton_Clicked
            buttonPanel.Children.Add(beginButton)
            Dim pauseButton As New Button()
            pauseButton.Content = "Pause"
            AddHandler pauseButton.Click, AddressOf pauseButton_Clicked
            buttonPanel.Children.Add(pauseButton)
            Dim resumeButton As New Button()
            resumeButton.Content = "Resume"
            AddHandler resumeButton.Click, AddressOf resumeButton_Clicked
            buttonPanel.Children.Add(resumeButton)
            Dim skipToFillButton As New Button()
            skipToFillButton.Content = "Skip to Fill"
            AddHandler skipToFillButton.Click, AddressOf skipToFillButton_Clicked
            buttonPanel.Children.Add(skipToFillButton)
            Dim setSpeedRatioButton As New Button()
            setSpeedRatioButton.Content = "Triple Speed"
            AddHandler setSpeedRatioButton.Click, AddressOf setSpeedRatioButton_Clicked
            buttonPanel.Children.Add(setSpeedRatioButton)
            Dim stopButton As New Button()
            stopButton.Content = "Stop"
            AddHandler stopButton.Click, AddressOf stopButton_Clicked
            buttonPanel.Children.Add(stopButton)
            Dim removeButton As New Button()
            removeButton.Content = "Remove"
            AddHandler removeButton.Click, AddressOf removeButton_Clicked
            buttonPanel.Children.Add(removeButton)

            controlsContainer.Child = buttonPanel
            Me.Blocks.Add(controlsContainer)

        End Sub

        ' Begins the storyboard.
        Private Sub beginButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            ' Specifying "true" as the second Begin parameter
            ' makes this storyboard controllable.
            myStoryboard.Begin(Me, True)

        End Sub

        ' Pauses the storyboard.
        Private Sub pauseButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
             myStoryboard.Pause(Me)

        End Sub

        ' Resumes the storyboard.
        Private Sub resumeButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
             myStoryboard.Resume(Me)

        End Sub

        ' Advances the storyboard to its fill period.
        Private Sub skipToFillButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
             myStoryboard.SkipToFill(Me)

        End Sub

        ' Updates the storyboard's speed.
        Private Sub setSpeedRatioButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            ' Makes the storyboard progress three times as fast as normal.
            myStoryboard.SetSpeedRatio(Me, 3)

        End Sub

        ' Stops the storyboard.
        Private Sub stopButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
             myStoryboard.Stop(Me)

        End Sub

        ' Removes the storyboard.
        Private Sub removeButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
             myStoryboard.Remove(Me)

        End Sub

    End Class
End Namespace

설명

이 스토리 보드를 대화형으로 제어 하려면 사용 해야 동일한 containingObject 스토리 보드를 시작 하는 데는 대화형 메서드를 호출할 때 매개 변수입니다. 제어 가능한 storyboard 수 일시 중지, 다시 시작, 검색, 중지 및 제거할 수 있습니다. 스토리 보드를 코드에서 제어할 수 있도록 해당 스토리 보드의 오버 로드를 사용 해야 합니다 Begin 메서드를 지정 하 고 true 제어할 수 있도록 합니다. 예를 들어 참조 방법:는 Storyboard를 시작한 후 제어입니다.

이 메서드를 호출 합니다 CurrentGlobalSpeedInvalidated 이벤트입니다.

적용 대상

SetSpeedRatio(FrameworkElement, Double)

Clock 에 대해 만들어진 Storyboard의 대화형 속도 비율을 설정합니다.

public:
 void SetSpeedRatio(System::Windows::FrameworkElement ^ containingObject, double speedRatio);
public void SetSpeedRatio (System.Windows.FrameworkElement containingObject, double speedRatio);
member this.SetSpeedRatio : System.Windows.FrameworkElement * double -> unit
Public Sub SetSpeedRatio (containingObject As FrameworkElement, speedRatio As Double)

매개 변수

containingObject
FrameworkElement

Begin(FrameworkElement, Boolean) 메서드가 호출되었을 때 지정된 개체입니다. 이 개체에는 이 스토리보드 및 해당 자식에 대해 생성된 Clock 개체가 포함됩니다.

speedRatio
Double

스토리보드의 새 대화형 속도 비율인 0보다 큰 유한 값입니다. 이 값에 스토리보드의 SpeedRatio 값을 곱해 스토리보드의 유효 속도를 결정합니다. 이 값은 스토리보드의 SpeedRatio 속성을 덮어쓰지 않습니다. 예를 들어 이 메서드를 호출하고 SpeedRatio 가 0.5인 스토리보드에 대해 대화형 속도 비율을 3으로 지정하면 스토리보드의 유효 속도가 1.5가 됩니다.

설명

이 스토리 보드를 대화형으로 제어 하려면 사용 해야 동일한 containingObject 스토리 보드를 시작 하는 데는 대화형 메서드를 호출할 때 매개 변수입니다. 제어 가능한 storyboard 수 일시 중지, 다시 시작, 검색, 중지 및 제거할 수 있습니다. 스토리 보드를 코드에서 제어할 수 있도록 해당 스토리 보드의 오버 로드를 사용 해야 합니다 Begin 메서드를 지정 하 고 true 제어할 수 있도록 합니다. 예를 들어 참조 방법:는 Storyboard를 시작한 후 제어입니다.

이 메서드를 호출 합니다 CurrentGlobalSpeedInvalidated 이벤트입니다.

적용 대상