private void MainPage_Loaded(object sender, RoutedEventArgs e) { _rootVisual = Root.Visual(); _rootVisual.Size = new Vector2((float)Root.ActualWidth, (float)Root.ActualHeight); _pathContainerVisual = PathContainer.Visual(); _pathContainerVisual.Size = _rootVisual.Size; _compositor = _rootVisual.Compositor; //CreateMoreShapes(); _interactionSource = VisualInteractionSource.Create(_rootVisual); _interactionSource.PositionXSourceMode = InteractionSourceMode.EnabledWithInertia; _interactionSource.PositionYSourceMode = InteractionSourceMode.EnabledWithInertia; _interactionSource.IsPositionXRailsEnabled = false; _interactionSource.IsPositionYRailsEnabled = false; _interactionSource.ScaleSourceMode = InteractionSourceMode.EnabledWithInertia; _interactionSource.ManipulationRedirectionMode = VisualInteractionSourceRedirectionMode.CapableTouchpadOnly; _tracker = InteractionTracker.CreateWithOwner(_compositor, this); _tracker.InteractionSources.Add(_interactionSource); _tracker.MaxPosition = new Vector3(_rootVisual.Size, 0.0f) * 3.0f; _tracker.MinPosition = _tracker.MaxPosition * -1.0f; _tracker.MinScale = 0.9f; _tracker.MaxScale = 12.0f; _tracker.ScaleInertiaDecayRate = 0.96f; var positionAnimation = _compositor.CreateExpressionAnimation("-t.Position"); positionAnimation.SetReferenceParameter("t", _tracker); _pathContainerVisual.StartAnimation("Offset", positionAnimation); var scaleAnimation = _compositor.CreateExpressionAnimation("Vector2(t.Scale, t.Scale)"); scaleAnimation.SetReferenceParameter("t", _tracker); _pathContainerVisual.StartAnimation("Scale.XY", scaleAnimation); }