InteractionTrackerInertiaMotion 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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 |
用來建立這個CompositionObject的Compositor。 (繼承來源 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) |