InteractionTrackerInertiaMotion Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
EspressioneAnimation che definisce il movimento di InteractionTracker durante lo stato di inertia.
La classe InteractionTrackerMotion contiene due espressioni che rappresentano una seconda equazione derivatadella posizione InteractionTracker userà per definire il movimento dall'inizio alla fine dell'inerzia quando viene soddisfatta una determinata condizione. La classe InteractionTrackerMotion è definita come due parti: l'istruzione condizionale da definire quando il movimento verrà eseguito e l'equazione che descrive il movimento per il modo in cui InteractionTracker raggiungerà la posizione di riposo finale. Utilizzare la classe InteractionTrackerInertiaMotion quando è necessario definire un movimento personalizzato (ad esempio un movimento di primavera) per InteractionTracker da usare quando si trova nello stato di inerzia.
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
- Ereditarietà
-
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 Anniversary Edition (è stato introdotto in 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v3.0)
|
Esempio
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);
}
Commenti
Quando si compila expressionAnimation per il componente di movimento di InteractionTrackerInertiaMotion, l'espressione viene descritta come seconda equazione derivata. Ad esempio, nel frammento di codice precedente viene usano l'equazione di base per il movimento Spring Force con umidità.
Quando si collega il modificatore InteractionTrackerInertiaMotion all'InteractionTracker, viene configurato in posizione X/Y o scala.
ExpressionAnimation che definisce la proprietà condition viene valutata una sola volta quando InteractionTracker entra in Inertia (aka quando l'interazione viene completata, ad esempio il dito rilasciato). Se la condizione restituisce true, l'espressione InertiaMotion viene valutata ogni frame per il resto di Inertia, anche se l'espressione condizione tecnicamente non è più vera.
I modificatori di InteractionTrackerInertiaMotion modificano l'equazione InteractionTracker per calcolarne la posizione. Pertanto, la posizione di riposo finale è determinata dalla natura dell'equazione stessa. Se è necessario che InteractionTracker si arresti in una posizione specifica, usare il modificatore InteractionTrackerInertiaRestingValue .
Proprietà
Comment |
Stringa da associare a CompositionObject. (Ereditato da CompositionObject) |
Compositor |
Compositore usato per creare questo oggetto CompositionObject. (Ereditato da CompositionObject) |
Condition |
EspressioneAnimation che descrive quando deve essere applicato il modificatore. La proprietà Condition è un'espressioneAnimazione che definisce quando l'equazione del movimento specificata viene utilizzata da InteractionTracker durante Inertia. Questa espressione viene valutata una volta dopo l'interazione e deve essere risolta in un tipo Bool, in caso contrario, viene generato un errore quando viene valutata la condizione. Per altre informazioni sulla compilazione delle espressioni, vedere la pagina della classe ExpressionAnimation . |
Dispatcher |
Dispatcher per CompositionObject. (Ereditato da CompositionObject) |
DispatcherQueue |
Ottiene dispatcherQueue per CompostionObject. (Ereditato da CompositionObject) |
ImplicitAnimations |
Raccolta di animazioni implicite associate a questo oggetto. (Ereditato da CompositionObject) |
Motion |
EspressioneAnimation che descrive il movimento modificato per InteractionTracker se l'espressione nella proprietà Condition è true. La proprietà Motion è un'espressioneAnimation che descrive il movimento InteractionTracker utilizzerà durante l'inerzia quando viene soddisfatta la condizione corrispondente. L'espressione verrà valutata ogni frame mentre InteractionTracker si trova in Inertia e deve essere risolta in un tipo Float, in caso contrario viene generato un errore quando viene valutata l'equazione. Per altre informazioni sulla compilazione delle espressioni, vedere la pagina della classe ExpressionAnimation . |
Properties |
Raccolta di proprietà associate a CompositionObject. (Ereditato da CompositionObject) |
Metodi
Close() |
Chiude l'oggetto CompositionObject e rilascia le risorse di sistema. (Ereditato da CompositionObject) |
ConnectAnimation(String, CompositionAnimation) |
Connette e animazione. (Ereditato da CompositionObject) |
Create(Compositor) |
Crea un'istanza di InteractionTrackerInertiaMotion. |
DisconnectAnimation(String) |
Disconnette un'animazione. (Ereditato da CompositionObject) |
Dispose() |
Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite. (Ereditato da CompositionObject) |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Definisce una proprietà che può essere animata. (Ereditato da CompositionObject) |
StartAnimation(String, CompositionAnimation, AnimationController) |
Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione. (Ereditato da CompositionObject) |
StartAnimation(String, CompositionAnimation) |
Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione. (Ereditato da CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
Avvia un gruppo di animazioni. Il metodo StartAnimationGroup in CompositionObject consente di avviare CompositionAnimationGroup. Tutte le animazioni del gruppo verranno avviate contemporaneamente sull'oggetto. (Ereditato da CompositionObject) |
StopAnimation(String) |
Disconnette un'animazione dalla proprietà specificata e arresta l'animazione. (Ereditato da CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
Arresta un gruppo di animazioni. (Ereditato da CompositionObject) |
TryGetAnimationController(String) |
Restituisce un oggetto AnimationController per l'animazione in esecuzione nella proprietà specificata. (Ereditato da CompositionObject) |