DoubleAnimation 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
public ref class DoubleAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DoubleAnimation final : Timeline
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class DoubleAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DoubleAnimation : Timeline
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
예제
다음 예제에서는 DoubleAnimation 을 사용하여 로드된 후 보기 안팎으로 페이드 인 및 바깥으로 페이드되는 사각형을 만드는 방법을 보여 줍니다.
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:3"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</StackPanel.Resources>
<Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
Width="100" Height="100" Fill="Blue" />
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
myStoryboard.Begin()
End Sub
<Canvas>
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animate the TranslateTransform's X property
from 0 to 350, then 50, then 200 over 10 seconds. -->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="MyAnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:10" EnableDependentAnimation="True">
<!-- Using a LinearDoubleKeyFrame, the rectangle moves
steadily from its starting position to 500 over
the first 3 seconds. -->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />
<!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly
appears at 400 after the fourth second of the animation. -->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!-- Using a SplineDoubleKeyFrame, the rectangle moves
back to its starting point. The animation starts out slowly at
first and then speeds up. This KeyFrame ends after the 6th
second. -->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Canvas.Resources>
<Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
Width="50" Height="50">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
myStoryboard.Begin()
End Sub
설명
DoubleAnimation을 사용하여 Double 형식인 종속성 속성의 속성 값에 애니메이션 효과를 끕니다.
경우에 따라 대상의 속성 값인 다른 개체의 하위 속성을 대상으로 지정하기 위해 간접 속성 대상 지정을 사용해야 합니다. 예를 들어 UIElement의 RenderTransform의 X 구성 요소에 애니메이션 효과를 주려면 TranslateTransform.X와 마찬가지로 간접 속성 경로의 마지막 단계가 실제로 Double 값이 될 때까지 중간 개체 속성 값 중 일부를 참조해야 합니다. 이 예제에서 Storyboard.TargetProperty 에 사용할 올바른 문자열은 "(UIElement.RenderTransform)입니다. (TranslateTransform.X)". 간접 속성 대상 지정 및 기타 스토리보드 애니메이션 개념에 대한 자세한 내용은 Storyboarded 애니메이션을 참조하세요.
DoubleAnimation에는 일반적으로 From, By 또는 To 속성 집합 중 하나 이상이 있지만 세 가지 모두 설정되지는 않습니다.
- 에서만 다음을 수행합니다. 애니메이션은 From 속성에 지정된 값에서 애니메이션 효과를 적용할 속성의 기본 값으로 진행됩니다.
- From 및 To: 애니메이션은 From 속성에 지정된 값에서 To 속성으로 지정된 값으로 진행됩니다.
- From 및 By: 애니메이션은 From 속성에 지정된 값에서 From 및 By 속성의 합계로 지정된 값으로 진행됩니다.
- 에만 해당: 애니메이션은 애니메이션 속성의 기본 값 또는 이전 애니메이션의 출력 값에서 To 속성에 지정된 값으로 진행됩니다.
- 만 사용: 애니메이션은 애니메이션 효과를 주는 속성의 기본 값 또는 이전 애니메이션의 출력 값에서 해당 값의 합계 및 By 속성에 지정된 값으로 진행됩니다.
이러한 속성은 종속성 속성이 아니므로 DoubleAnimation을 사용하여 Point의 X 및 Y 값에 애니메이션 효과를 적용할 수 없습니다(Point는 구조체이며 종속성 속성을 가질 수 없음). 대신 PointAnimation을 사용하여 Point 값이 있는 종속성 속성에 애니메이션 효과를 갖습니다.
DoubleAnimation을 사용하여 int 값 또는 바이트 값에 애니메이션 효과를 적용할 수도 없습니다. 대신 보간 동작을 제공하지 않는 ObjectAnimationUsingKeyFrames를 사용해야 하므로 합리적으로 부드러운 애니메이션을 얻기 위해 여러 키 프레임을 정의해야 할 수 있습니다. int 값 또는 바이트 값을 사용하는 UI 관련 종속성 속성이 많지 않으므로 사용자 지정 속성 이외의 일반적인 시나리오가 아니어야 합니다.
DoubleAnimation의 From, By 또는 To 속성은 엄격하게 Double이 아닙니다. 대신 Double에 대해 Nullable입니다. 기본값은 0이 아닌 null입니다. Null 값은 애니메이션 시스템에서 값을 구체적으로 설정하지 않았음을 구분하는 방법입니다. Visual C++ 구성 요소 확장(C++/CX)에는 Nullable 형식이 없으므로 IReference를 대신 사용합니다.
생성자
DoubleAnimation() |
DoubleAnimation 클래스의 새 instance 초기화합니다. |
속성
AutoReverse |
타임라인이 앞으로 반복을 완료한 후 반대 방향으로 재생되는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 Timeline) |
BeginTime |
이 타임라인 을 시작할 시간을 가져오거나 설정합니다. (다음에서 상속됨 Timeline) |
By |
애니메이션에서 시작 값을 변경하는 총 크기를 가져오거나 설정합니다. |
ByProperty |
By 종속성 속성을 식별합니다. |
Dispatcher |
이 개체가 연결된 CoreDispatcher 를 가져옵니다. CoreDispatcher는 코드가 비 UI 스레드에서 시작된 경우에도 UI 스레드에서 DependencyObject에 액세스할 수 있는 기능을 나타냅니다. (다음에서 상속됨 DependencyObject) |
Duration |
반복을 제외하고 이 Timeline이 재생되는 시간을 가져오거나 설정합니다. (다음에서 상속됨 Timeline) |
EasingFunction |
이 애니메이션에 적용되는 감속/가속 함수를 가져오거나 설정합니다. |
EasingFunctionProperty |
EasingFunction 종속성 속성을 식별합니다. |
EnableDependentAnimation |
종속 애니메이션으로 간주되는 애니메이션 속성이 이 애니메이션 선언을 사용할 수 있는지 여부를 선언하는 값을 가져오거나 설정합니다. |
EnableDependentAnimationProperty |
EnableDependentAnimation 종속성 속성을 식별합니다. |
FillBehavior |
애니메이션이 활성 기간의 끝에 도달한 후 동작하는 방식을 지정하는 값을 가져오거나 설정합니다. (다음에서 상속됨 Timeline) |
From |
애니메이션의 시작 값을 가져오거나 설정합니다. |
FromProperty |
From 종속성 속성을 식별합니다. |
RepeatBehavior |
이 타임라인의 반복 동작을 가져오거나 설정합니다. (다음에서 상속됨 Timeline) |
SpeedRatio |
이 타임라인에 대해 진행되는 부모에 상대적인 속도를 가져오거나 설정합니다. (다음에서 상속됨 Timeline) |
To |
애니메이션의 끝 값을 가져오거나 설정합니다. |
ToProperty |
To 종속성 속성을 식별합니다. |
메서드
ClearValue(DependencyProperty) |
종속성 속성의 로컬 값을 지웁니다. (다음에서 상속됨 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
애니메이션이 활성화되지 않은 경우 적용되는 종속성 속성에 대해 설정된 모든 기본 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
GetValue(DependencyProperty) |
DependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
ReadLocalValue(DependencyProperty) |
로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
이 DependencyObject instance 특정 DependencyProperty의 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다. (다음에서 상속됨 DependencyObject) |
SetValue(DependencyProperty, Object) |
DependencyObject에서 종속성 속성의 로컬 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다. (다음에서 상속됨 DependencyObject) |
이벤트
Completed |
Storyboard 개체 재생이 완료되면 발생합니다. (다음에서 상속됨 Timeline) |