次の方法で共有


ImplicitAnimationCollection クラス

定義

条件が満たされたときにトリガーされるアニメーションのコレクション。

public ref class ImplicitAnimationCollection sealed : CompositionObject, IIterable<IKeyValuePair<Platform::String ^, ICompositionAnimationBase ^> ^>, IMap<Platform::String ^, ICompositionAnimationBase ^>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [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.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[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>>
Public NotInheritable Class ImplicitAnimationCollection
Inherits CompositionObject
Implements IDictionary(Of String, ICompositionAnimationBase), IEnumerable(Of KeyValuePair(Of String, ICompositionAnimationBase))
継承
Object Platform::Object IInspectable CompositionObject ImplicitAnimationCollection
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 Anniversary Edition (10.0.14393.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v3.0 で導入)

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 Anniversary Update では、Visual アニメーション化可能なプロパティのみがトリガーとしてサポートされます。

this.FinalValue

これは、開発者がアニメーションをテンプレート化し、プラットフォームがターゲット プロパティの API 値にバインドするために使用できる、"Composition Expressions system" 内の特別なキーワード (keyword)です。

アニメーションはこれをサポートします。FinalValue は、アニメーションのターゲット プロパティの最終的な値を示す有効なキーワード (keyword)としてキーワード (keyword)されます。

  • 暗黙的なアニメーション – この。FinalValue は、対応するターゲット プロパティが直接割り当てられた最後の値に設定されます。 たとえば、ビジュアルの Offset プロパティが直接割り当てられている場合、 Offset プロパティを対象とする暗黙的なアニメーションには これが含まれます。FinalValue は、Vector3 型の新しい Offset 値に設定されます。 さまざまなプロパティ ( Size など) を対象とする他の暗黙的なアニメーションでは、引き続きこれを使用できます 。テンプレートの FinalValue 。その場合 は this。FinalValue は、Vector2 型の Size プロパティの現在の値に設定されます。 後者の場合は 、このことに注意してください。FinalValue はこれと同じになります 。StartingValue 。 これにより、明確に定義された動作が提供され、開発者はこのようにアニメーション テンプレートを簡単に作成できます 。変更 をトリガーしたプロパティに関係なく、FinalValue は常に有効な値に解決されます。
  • 明示的なアニメーション: 既定では、暗黙的なアニメーションの場合と同じ動作になります。 ここで、これはです。FinalValue は、プロパティが直接設定された最後の値に設定されます。 たとえば、 Size プロパティを対象とするアニメーションには、この設定が適用されます 。FinalValue は、API レイヤーの最後の既知の Size 値に解決されました。 つまり、 これはです。FinalValue はこれと同じになります 。StartingValue 。 開発者はその動作をオーバーライドし、これを設定できます 。FinalValue を別の値に設定するには、アニメーション パラメーターとして明示的に設定します。

ImplicitAnimationCollection および CompositionAnimationGroup のイベントとターゲット プロパティ

ImplicitAnimationCollection を使用すると、暗黙的なアニメーションが変更を監視し、開発者が提供する関連するアニメーションを開始するトリガーを追加できます。 ImplicitAnimationCollection では、アニメーションのターゲット プロパティとしても使用されるすべての Visual アニメーション可能なプロパティがサポートされています。 ターゲットはアニメーションで定義する必要があります。または、例外がスローされます。

implicitAnimationCollection[“Offset”] = offsetAnimationGroup;            

CompositionAnimationGroup には CompositionAnimation の一覧が含まれています。このリストは、1 つの論理ユニットとしてトリガーできます。 グループ内の各 CompositionAnimation には、ターゲット プロパティが設定されている必要があります。

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

ImplicitAnimationCollection では、 Visual で次のプロパティがサポートされています。

プロパティ

Comment

CompositionObject に関連付ける文字列。

(継承元 CompositionObject)
Compositor

この CompositionObject の作成に使用するコンポジター

(継承元 CompositionObject)
Dispatcher

CompositionObject のディスパッチャー。

(継承元 CompositionObject)
DispatcherQueue

CompostionObject の DispatcherQueue を取得します。

(継承元 CompositionObject)
ImplicitAnimations

このオブジェクトにアタッチされている暗黙的なアニメーションのコレクション。

(継承元 CompositionObject)
Properties

CompositionObject に関連付けられているプロパティのコレクション。

(継承元 CompositionObject)
Size

コレクションのサイズ。

メソッド

Clear()

コレクションからすべてのアニメーションを削除します。

Close()

CompositionObject を閉じ、システム リソースを解放します。

(継承元 CompositionObject)
ConnectAnimation(String, CompositionAnimation)

接続とアニメーション。

(継承元 CompositionObject)
DisconnectAnimation(String)

アニメーションを切断します。

(継承元 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)

適用対象

こちらもご覧ください