InteractionTrackerInertiaMotion 類別

定義

ExpressionAnimation,定義 InteractionTracker 在其慣性狀態期間的動作。

InteractionTrackerMotion 類別包含兩個 ExpressionAnimation,代表 InteractionTracker 位置的第二個衍生方程式,會在符合特定條件時,用來定義從慣性開始到結尾的動作。 InteractionTrackerMotion 類別定義為兩個部分:要定義何時進行動作的條件陳述式,以及描述 InteractionTracker 如何到達最終靜止位置動作的方程式。 當您需要定義自訂動作時,請使用 InteractionTrackerInertiaMotion 類別 (例如 Spring 動作) ,讓 InteractionTracker 在慣性狀態時使用。

public ref class InteractionTrackerInertiaMotion sealed : InteractionTrackerInertiaModifier
/// [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 InteractionTrackerInertiaMotion final : InteractionTrackerInertiaModifier
[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 InteractionTrackerInertiaMotion : InteractionTrackerInertiaModifier
Public NotInheritable Class InteractionTrackerInertiaMotion
Inherits InteractionTrackerInertiaModifier
繼承
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
屬性

Windows 需求

裝置系列
Windows 10 Anniversary Edition (已於 10.0.14393.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v3.0 引進)

範例

void CustomSpringInertiaMotion(float dampingCoefficient, 	float springStiffnessCoefficient)
{
  //
  // Set up our inertia modifiers to use our custom motion
  //
  InteractionTrackerInertiaMotion[] modifiers = 
  new InteractionTrackerInertiaMotion[1];

  var modifier1 = InteractionTrackerInertiaMotion.Create(_compositor);

  /*
  We create a custom spring motion for when the InteractionTracker passes the
  maximum boundary. 
  When we hit the boundary, the amount of oscillation is determined by the 	distance to the far end point, the spring stiffness and damping rate.
  */ 

  // Define the condition that the spring motion gets applied – when we pass the
  // maximum boundary
  modifier1.Condition = _compositor.CreateExpressionAnimation(
  "this.Target.NaturalRestingPosition.X > this.Target.MaxPosition.X");

  // Define the second derivative equation as a custom spring force motion
  // Equation = kx–cv where (k is spring constant, c is damping, x is displacement)
  modifier1.Motion = _compositor.CreateExpressionAnimation(
    "(-springStiffnessCoefficient * (this.Target.Position.X – this.Target.MaxPosition.X)) + " +
    "(-dampingCoefficient * target.PositionVelocityInPixelsPerSecond.X");

  modifier1.Motion.SetScalarParameter("springStiffnessCoefficient", springStiffnessCoefficient);
  modifier1.Motion.SetScalarParameter("dampingCoefficient", dampingCoefficient);

  modifiers[0] = modifier1;

  // Attach InertiaModifiers to the Y position component of InteractionTracker
  _tracker.ConfigurePositionYInertiaModifiers(modifiers);
}

備註

為 InteractionTrackerInertiaMotion 的動作元件建置 ExpressionAnimation 時,運算式會描述為第二個衍生方程式。 例如,在上述程式碼片段中,我們會利用 Spring Force 動作的基本方程式搭配抑制。

將 InteractionTrackerInertiaMotion 修飾詞附加至 InteractionTracker時,您可以將它設定為 X/Y 位置或縮放比例。

定義條件屬性的 ExpressionAnimation 只會在 InteractionTracker 進入慣性 (當互動完成如手指放開) 時評估一次。 如果條件評估為 true,則慣性運算式會評估慣性其餘部分的每個畫面格,即使技術上的條件運算式不再成立也一樣。

InteractionTrackerInertiaMotion 修飾詞會變更 InteractionTracker 用來計算其位置的方程式。 因此,最終的其餘位置取決於方程式本身的本質。 如果您需要 InteractionTracker 在特定位置停止,請使用 InteractionTrackerInertiaRestingValue 修飾詞。

屬性

Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 CompositionObject)
Condition

ExpressionAnimation,描述何時應套用修飾詞。

Condition 屬性是 ExpressionAnimation, 會在慣性期間 由 InteractionTracker 使用指定的動作方程式時定義。 此運算式會在互動發生之後評估一次,而且必須解析為 Bool 類型,否則評估條件時會擲回錯誤。 如需建置運算式的詳細資訊,請參閱 ExpressionAnimation 類別頁面。

Dispatcher

CompositionObject的發送器。

(繼承來源 CompositionObject)
DispatcherQueue

取得 CompostionObject 的 DispatcherQueue

(繼承來源 CompositionObject)
ImplicitAnimations

附加至這個 物件的隱含動畫集合。

(繼承來源 CompositionObject)
Motion

如果 Condition 屬性中的運算式為 true, 則為 ExpressionAnimation ,描述 InteractionTracker 修改過的動作。

Motion 屬性是 ExpressionAnimation ,描述項合對應條件時 ,慣性期間會利用的動作 InteractionTracker當 InteractionTracker處於慣性且必須解析為 Float 類型時,運算式將會評估每個畫面格,否則會在評估方程式時擲回錯誤。 如需建置運算式的詳細資訊,請參閱 ExpressionAnimation 類別頁面。

Properties

CompositionObject相關聯的屬性集合。

(繼承來源 CompositionObject)

方法

Close()

關閉 CompositionObject 並釋放系統資源。

(繼承來源 CompositionObject)
ConnectAnimation(String, CompositionAnimation)

連接和動畫。

(繼承來源 CompositionObject)
Create(Compositor)

建立 InteractionTrackerInertiaMotion的實例。

DisconnectAnimation(String)

中斷動畫的連線。

(繼承來源 CompositionObject)
Dispose()

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

(繼承來源 CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

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

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

適用於

另請參閱