다음을 통해 공유


ImplicitAnimationCollection 클래스

정의

조건이 충족될 때 트리거되는 애니메이션 컬렉션입니다.

public ref class ImplicitAnimationCollection sealed : CompositionObject, IIterable<IKeyValuePair<Platform::String ^, ICompositionAnimationBase ^> ^>, IMap<Platform::String ^, ICompositionAnimationBase ^>
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ImplicitAnimationCollection final : CompositionObject, IIterable<IKeyValuePair<winrt::hstring, ICompositionAnimationBase const&>>, IMap<winrt::hstring, ICompositionAnimationBase const&>
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class ImplicitAnimationCollection final : CompositionObject, IIterable<IKeyValuePair<winrt::hstring, ICompositionAnimationBase const&>>, IMap<winrt::hstring, ICompositionAnimationBase const&>
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ImplicitAnimationCollection : CompositionObject, IDictionary<string,ICompositionAnimationBase>, IEnumerable<KeyValuePair<string,ICompositionAnimationBase>>
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class ImplicitAnimationCollection : CompositionObject, IDictionary<string,ICompositionAnimationBase>, IEnumerable<KeyValuePair<string,ICompositionAnimationBase>>
Public NotInheritable Class ImplicitAnimationCollection
Inherits CompositionObject
Implements IDictionary(Of String, ICompositionAnimationBase), IEnumerable(Of KeyValuePair(Of String, ICompositionAnimationBase))
상속
Object Platform::Object IInspectable CompositionObject ImplicitAnimationCollection
특성
구현

예제

class PropertyAnimation 
{ 
  PropertyAnimation(Compositor compositor, SpriteVisual heroVisual, SpriteVisual listVisual) 
  { 
    // Define ImplicitAnimationCollection 
    ImplicitAnimationCollection implicitAnimations = compositor.CreateImplicitAnimationCollection(); 

    // Trigger animation when the “Offset” property changes. 
    implicitAnimations["Offset"] = CreateAnimation(compositor); 

    // Assign ImplicitAnimations to a visual. Unlike Visual.Children,     
    // ImplicitAnimations can be shared by multiple visuals so that they  
    // share the same implicit animation behavior (same as Visual.Clip). 
    heroVisual.ImplicitAnimations = implicitAnimations; 

    // ImplicitAnimations can be shared among visuals  
    listVisual.ImplicitAnimations = implicitAnimations; 

    listVisual.Offset = new Vector3(20f, 20f, 20f); 
  } 

  Vector3KeyFrameAnimation CreateAnimation(Compositor compositor) 
  { 
    Vector3KeyFrameAnimation animation = compositor.CreateVector3KeyFrameAnimation(); 
    animation.InsertExpressionKeyFrame(0f, "this.StartingValue"); 
    animation.InsertExpressionKeyFrame(1f, "this.FinalValue"); 
    animation.Target = “Offset”; 
    animation.Duration = TimeSpan.FromSeconds(0.25); 
    return animation; 
  } 
} 

설명

암시적 애니메이션을 사용하면 애니메이션 동작의 수동 정의를 요구하지 않고 트리거 조건을 지정하여 애니메이션을 구동할 수 있습니다. 핵심 앱 논리에서 애니메이션 시작 논리를 분리하는 데 도움이 될 수 있습니다. 애니메이션 및 이러한 애니메이션을 트리거해야 하는 이벤트를 정의합니다. 그런 다음 작성자는 적절한 트리거 조건이 충족될 때 집합 애니메이션을 실행합니다.

트리거

조건은 ImplicitAnimationCollection에 대한 트리거 역할을 합니다. 이러한 트리거는 CompositionObject 애니메이션 가능 속성입니다. Windows 10 1주년 업데이트의 경우 시각적 애니메이션 가능 속성만 트리거로 지원됩니다.

이. FinalValue

이는 개발자가 애니메이션을 템플릿화하고 플랫폼에서 대상 속성의 API 값에 바인딩하는 데 사용할 수 있는 "컴퍼지션 식 시스템" 내의 특별한 키워드(keyword).

애니메이션은 이를 지원합니다. FinalValue는 애니메이션에 대한 대상 속성의 최종 값을 나타내는 유효한 키워드(keyword) 키워드(keyword).

  • 암시적 애니메이션 – 이 항목입니다 . FinalValue 는 해당 대상 속성이 직접 할당된 마지막 값으로 설정됩니다. instance 경우 시각적 개체의 Offset 속성이 직접 할당되면 Offset 속성을 대상으로 하는 암시적 애니메이션에 이 속성이 있습니다. FinalValue는 Vector3 형식의 새 오프셋 값으로 설정됩니다. 다른 속성을 대상으로 하는 다른 암시적 애니메이션( 예: 크기 )은 여전히 이 속성을 사용할 수 있습니다 . 템플릿의 FinalValue 이며, 이 경우 입니다 . FinalValue 는 Vector2 형식의 Size 속성의 현재 값으로 설정됩니다. 후자의 경우 이를 확인합니다 . FinalValue이와 동일합니다. StartingValue . 이렇게 하면 잘 정의된 동작이 제공되고 개발자가 애니메이션 템플릿을 쉽게 작성할 수 있습니다 . FinalValue 는 변경이 트리거된 속성에 관계없이 항상 유효한 값으로 확인됩니다.
  • 명시적 애니메이션: 기본적으로 암시적 애니메이션의 경우와 동일한 동작이 발생합니다 . FinalValue 는 속성이 직접 설정된 마지막 값으로 설정됩니다. 예를 들어 Size 속성을 대상으로 하는 애니메이션에는 이 속성이 있습니다 . FinalValue 가 API 계층에서 마지막으로 알려진 Size 값으로 확인되었습니다. 즉, 이것은. FinalValue이와 동일합니다. StartingValue . 개발자는 해당 동작을 재정의하고 설정할 수 있습니다 . FinalValue 를 애니메이션 매개 변수로 명시적으로 설정하여 다른 값으로 설정합니다.

ImplicitAnimationCollection 및 CompositionAnimationGroup에 대한 이벤트 및 대상 속성

ImplicitAnimationCollection을 사용하면 암시적 애니메이션이 변경 내용을 모니터링하고 개발자가 제공한 대로 관련 애니메이션을 시작하는 트리거를 추가할 수 있습니다. ImplicitAnimationCollection은 애니메이션의 대상 속성으로도 사용되는 모든 시각적 애니메이션 가능 속성을 지원합니다. 애니메이션에서 대상을 정의해야 하거나 예외를 throw합니다.

implicitAnimationCollection[“Offset”] = offsetAnimationGroup;            

CompositionAnimationGroup 에는 단일 논리 단위로 트리거할 수 있는 CompositionAnimation 목록이 포함되어 있습니다. 그룹의 각 CompositionAnimation 에는 대상 속성 집합이 있어야 합니다.

CompositionAnimationGroup.Add(opacityKeyFrameAnimation);
CompositionAnimationGroup.Insert(sizeKeyFrameAnimation);

ImplicitAnimationCollection은 Visual에서 다음 속성을 지원합니다.

속성

Comment

CompositionObject와 연결할 문자열입니다.

(다음에서 상속됨 CompositionObject)
Compositor

CompositionObject를 만드는 데 사용되는 Compositor입니다.

(다음에서 상속됨 CompositionObject)
DispatcherQueue

CompositionObject에 대한 DispatcherQueue를 가져옵니다.

(다음에서 상속됨 CompositionObject)
ImplicitAnimations

이 개체에 연결된 암시적 애니메이션의 컬렉션입니다.

(다음에서 상속됨 CompositionObject)
Properties

CompositionObject와 연결된 속성의 컬렉션입니다.

(다음에서 상속됨 CompositionObject)
Size

컬렉션의 크기입니다.

메서드

Clear()

컬렉션에서 모든 애니메이션을 제거합니다.

Close()

CompositionObject를 닫고 시스템 리소스를 해제합니다.

(다음에서 상속됨 CompositionObject)
Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

(다음에서 상속됨 CompositionObject)
First()

컬렉션의 첫 번째 애니메이션을 검색합니다.

GetView()

컬렉션의 맵 보기를 반환합니다.

HasKey(String)

컬렉션에 지정된 키가 포함되어 있는지 여부를 나타내는 부울을 반환합니다.

Insert(String, ICompositionAnimationBase)

컬렉션에 애니메이션을 삽입합니다.

Lookup(String)

지정된 속성과 연결된 애니메이션을 검색합니다.

PopulatePropertyInfo(String, AnimationPropertyInfo)

애니메이션 효과를 주는 속성을 정의합니다.

(다음에서 상속됨 CompositionObject)
Remove(String)

컬렉션에서 지정된 애니메이션을 제거합니다.

StartAnimation(String, CompositionAnimation, AnimationController)

개체의 지정된 속성에 애니메이션을 연결하고 애니메이션을 시작합니다.

(다음에서 상속됨 CompositionObject)
StartAnimation(String, CompositionAnimation)

개체의 지정된 속성에 애니메이션을 연결하고 애니메이션을 시작합니다.

(다음에서 상속됨 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

애니메이션 그룹을 시작합니다.

CompositionObject의 StartAnimationGroup 메서드를 사용하면 CompositionAnimationGroup을 시작할 수 있습니다. 그룹의 모든 애니메이션은 개체에서 동시에 시작됩니다.

(다음에서 상속됨 CompositionObject)
StopAnimation(String)

지정된 속성에서 애니메이션의 연결을 끊고 애니메이션을 중지합니다.

(다음에서 상속됨 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

애니메이션 그룹을 중지합니다.

(다음에서 상속됨 CompositionObject)
TryGetAnimationController(String)

지정된 속성에서 실행되는 애니메이션에 대한 AnimationController를 반환합니다.

(다음에서 상속됨 CompositionObject)

적용 대상

추가 정보