다음을 통해 공유


ColorAnimation 클래스

정의

지정된 기간 동안 선형 보간을 사용하여 두 대상 값 사이의 Color 속성 값에 애니메이션 효과를 적용 합니다.

public ref class ColorAnimation 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 ColorAnimation 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 ColorAnimation 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 ColorAnimation : 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 ColorAnimation : Timeline
Public NotInheritable Class ColorAnimation
Inherits Timeline
<ColorAnimation .../>
상속
Object Platform::Object IInspectable DependencyObject Timeline ColorAnimation
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

다음 예제에서는 ColorAnimation을 사용하여 StackPanel의 배경색에 애니메이션 효과를 주는 방법을 보여줍니다.

<StackPanel x:Name="myStackPanel" Background="Red"
  Loaded="Start_Animation">
  <StackPanel.Resources>
    <Storyboard x:Name="colorStoryboard">

      <!-- Animate the background color of the canvas from red to green
        over 4 seconds. -->
      <ColorAnimation Storyboard.TargetName="myStackPanel" 
        Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
        From="Red" To="Blue" Duration="0:0:4"/>

    </Storyboard>
  </StackPanel.Resources>
</StackPanel>
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
    <StackPanel.Resources>
        <Storyboard x:Name="colorStoryboard">

            <ColorAnimationUsingKeyFrames Storyboard.TargetName="myStackPanel" 
      Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
                
                <!-- Go from green to red in the first 2 seconds. LinearColorKeyFrame creates
                a smooth, linear animation between values. -->
                <LinearColorKeyFrame Value="Blue" KeyTime="00:00:02" />

                <!-- In the next half second, go to yellow. DiscreteColorKeyFrame creates a 
                sudden jump between values. -->
                <DiscreteColorKeyFrame Value="Yellow" KeyTime="00:00:2.5" />

                <!-- In the final 2 seconds of the animation, go from yellow back to green. SplineColorKeyFrame 
                creates a variable transition between values depending on the KeySpline property. In this example,
                the animation starts off slow but toward the end of the time segment, it speeds up exponentially.-->
                <SplineColorKeyFrame Value="Green" KeyTime="00:00:4.5" KeySpline="0.6,0.0 0.9,0.00" />

            </ColorAnimationUsingKeyFrames>
        </Storyboard>
    </StackPanel.Resources>
</StackPanel>
<StackPanel Loaded="Start_Animation">
  <StackPanel.Resources>
    <Storyboard x:Name="colorStoryboard">
      <!-- Animate the background color of the canvas from red to green
        over 4 seconds. -->
      <ColorAnimation Storyboard.TargetName="mySolidColorBrush"
        Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
    </Storyboard>
  </StackPanel.Resources>

  <StackPanel.Background>
    <SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
  </StackPanel.Background>

</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
    colorStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    colorStoryboard.Begin()
End Sub
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"

또는 SolidColorBrush를 명시적으로 만들고 이름을 지정하고 Color 속성을 직접 대상으로 지정할 수 있습니다. 아래 예제에서는 직접 속성 대상 지정을 사용하는 경우를 제외하고 이전 애니메이션과 동일한 애니메이션을 만드는 방법을 보여줍니다.

<StackPanel Loaded="Start_Animation">
  <StackPanel.Resources>
    <Storyboard x:Name="colorStoryboard">
      <!-- Animate the background color of the canvas from red to green
        over 4 seconds. -->
      <ColorAnimation Storyboard.TargetName="mySolidColorBrush"
        Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
    </Storyboard>
  </StackPanel.Resources>

  <StackPanel.Background>
    <SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
  </StackPanel.Background>

</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
    colorStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    colorStoryboard.Begin()
End Sub

설명

ColorAnimation을 사용하여 Color 형식인 종속성 속성의 속성 값에 애니메이션 효과를 줄 수 있습니다.

Color에 대한 선형 보간은 각 ARGB 값이 바이트로 처리되고 보간이 단순히 수학적 연산임을 의미합니다. RGB 구성 요소 중 하나 이상이 시작 값과 끝 값 모두에서 동일하거나 거의 같은 경우 색 보간에서 최상의 결과를 얻을 수 있습니다.

일반적으로 대상의 속성 값인 다른 개체의 하위 속성을 대상으로 하려면 간접 속성 대상 지정을 사용해야 합니다. UI 요소에 색 정보를 표시하는 속성이 실제로 Color 형식이기 때문입니다. 대부분은 Brush 형식이 아닌 입니다. UI 요소에서 ColorAnimation을 사용하려면 일반적으로 하위 속성 값인 SolidColorBrushColor 속성을 대상으로 합니다. 이에 대한 구문은 "예제" 섹션의 XAML 예제에 나와 있습니다. 간접 속성 대상 지정 및 기타 스토리보드 애니메이션 개념에 대한 자세한 내용은 Storyboarded 애니메이션 또는 속성 경로 구문을 참조하세요.

ColorAnimation에는 일반적으로 From, By 또는 To 속성 중 하나 이상이 설정되어 있지만 세 가지 모두 설정되지는 않습니다.

  • 에서만 다음을 수행합니다. 애니메이션은 From 속성에 지정된 값에서 애니메이션 효과를 적용할 속성의 기본 값으로 진행됩니다.
  • From 및 To: 애니메이션은 From 속성에 지정된 값에서 To 속성으로 지정된 값으로 진행됩니다.
  • 출처 및 기준: 애니메이션은 From 속성에 지정된 값에서 FromBy 속성의 합계로 지정된 값으로 진행됩니다.
  • 에만 해당: 애니메이션은 애니메이션 속성의 기본 값 또는 이전 애니메이션의 출력 값에서 To 속성에 지정된 값으로 진행됩니다.
  • 만: 애니메이션은 애니메이션 효과를 주는 속성의 기본 값 또는 이전 애니메이션의 출력 값에서 해당 값의 합계 및 By 속성에 지정된 값으로 진행됩니다.

ColorAnimation의 From, ByTo 속성은 엄격하게 Color가 아닙니다. 대신 에 대한 Nullable입니다. 기본값은 초기화되지 않은 구조체가 아니라 null입니다. 해당 null 값은 애니메이션 시스템에서 값을 구체적으로 설정하지 않은 것을 구분하는 방법입니다. Visual C++ 구성 요소 확장(C++/CX)에는 Nullable 형식이 없으므로 IReference를 대신 사용합니다.

생성자

ColorAnimation()

ColorAnimation 클래스의 새 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)

적용 대상

추가 정보