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年度更新版僅支援視覺化動畫屬性作為觸發程式。

this.FinalValue

這是「組合運算式系統」內的特殊關鍵字,開發人員可用來範本化其動畫,並讓平臺將其系結至目標屬性的 API 值。

動畫將支援此功能。FinalValue 關鍵字做為有效的關鍵字,表示動畫之目標屬性的最終值。

  • 隱含動畫 – 這是。FinalValue 將會設定為對應目標屬性直接指派給的最後一個值。 例如,當視覺效果的 Offset 屬性直接指派給 時,以 Offset 屬性為目標的隱含動畫將會有 這個。FinalValue 設定為 Vector3 類型的新 Offset 值。 其他以不同屬性為目標的隱含動畫,例如 Size ,仍可使用 這個屬性。範本中的 FinalValue ,在此情況下 為 。FinalValue 將會設定為 Vector2 類型的 Size 屬性目前值。 請注意,在後者的情況下 ,FinalValue 會與 這個相同。StartingValue 。 這會提供定義完善的行為,並讓開發人員輕鬆地撰寫動畫範本 。不論 哪一個屬性已觸發變更,FinalValue 一律會解析為有效的值。
  • 明確動畫:根據預設,其行為會與隱含動畫的情況相同,在此情況 中。FinalValue 將會設定為屬性直接設定為的最後一個值。 例如,以 Size 屬性為目標的動畫會有 這個。FinalValue 解析為 API 層上最後已知的 Size 值。 換句話說, 這一點。FinalValue 會與 這個相同。StartingValue 。 開發人員將能夠覆寫該行為並設定 此行為。FinalValue 設定為不同的值,方法是明確地將它設定為動畫參數。

ImplicitAnimationCollection 和 CompositionAnimationGroup 的事件和目標屬性

ImplicitAnimationCollection 可讓您新增可監視變更的隱含動畫的觸發程式,並啟動開發人員所提供的相關動畫。 ImplicitAnimationCollection 支援所有 Visual 可動畫屬性,這些屬性也會當做動畫的目標屬性使用。 目標必須在動畫上定義,否則會擲回例外狀況。

implicitAnimationCollection[“Offset”] = offsetAnimationGroup;            

CompositionAnimationGroup 包含 CompositionAnimation 的清單,可在其中將其觸發為單一邏輯單元。 群組中的每個 CompositionAnimation 都應該設定目標屬性。

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

ImplicitAnimationCollection 支援 Visual上的下列屬性:

屬性

Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 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()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

(繼承來源 CompositionObject)
First()

擷取集合中的第一個動畫。

GetView()

傳回集合的地圖檢視。

HasKey(String)

傳回布林值,指出集合是否包含指定的索引鍵。

Insert(String, ICompositionAnimationBase)

將動畫插入集合中。

Lookup(String)

擷取與指定屬性相關聯的動畫。

PopulatePropertyInfo(String, AnimationPropertyInfo)

定義可以產生動畫效果的屬性。

(繼承來源 CompositionObject)
Remove(String)

從集合中移除指定的動畫。

StartAnimation(String, CompositionAnimation)

將動畫與物件的指定屬性連接,並啟動動畫。

(繼承來源 CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

將動畫與物件的指定屬性連接,並啟動動畫。

(繼承來源 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

啟動動畫群組。

CompositionObject上的StartAnimationGroup 方法可讓您啟動 CompositionAnimationGroup。 群組中的所有動畫都會在 物件上同時啟動。

(繼承來源 CompositionObject)
StopAnimation(String)

中斷動畫與指定屬性的連接,並停止動畫。

(繼承來源 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

停止動畫群組。

(繼承來源 CompositionObject)
TryGetAnimationController(String)

傳回在指定屬性上執行之動畫的 AnimationController。

(繼承來源 CompositionObject)

適用於

另請參閱