public void CreateTween(Point oldPos, Point newPos, UIElement child, double animationDuration, TweenHandler tweenHandler) { var deltaX = oldPos.X - newPos.X; var deltaY = oldPos.Y - newPos.Y; //if (IsOutsideWindowBounds(child)) //{ // return; //} tweenHandler.ClearTweensOf(child); if (child.RenderTransform is TranslateTransform translateTransform) { translateTransform.X += deltaX; translateTransform.Y += deltaY; } else { translateTransform = new TranslateTransform(deltaX, deltaY); child.RenderTransform = translateTransform; } var xTween = translateTransform.Tween(x => x.X) .To(0) .In(animationDuration) .Ease(Easing.ExpoEaseOut); var yTween = translateTransform.Tween(x => x.Y) .To(0) .In(animationDuration) .Ease(Easing.ExpoEaseOut); tweenHandler.Add(new SequenceOfTarget(child, xTween, yTween)); }
public void TweenFactoryTest() { var rect = new Rectangle(); rect.Tween(x => x.X, ArithmeticProgressFunction).And(x => x.Y).To(5); rect.Tween(x => x.X, ArithmeticProgressFunction).To(5); var sequence = rect.Tween(x => x.X, ArithmeticProgressFunction).And(x => x.Y).To(5).In(2); var tween = rect.Tween(x => x.Z, ArithmeticProgressFunction).To(50).In(5).In(5); var seq = new Sequence(sequence, tween); _tweenHandler.Add(seq); RunSimulation(5); Assert.AreEqual("0.25\r\n0.25\r\n1.00\r\n0.50\r\n0.50\r\n2.00\r\n0.75\r\n0.75\r\n3.00\r\n1.00\r\n1.00\r\n4.00\r\n1.25\r\n1.25\r\n5.00\r\n1.50\r\n1.50\r\n6.00\r\n1.75\r\n1.75\r\n7.00\r\n2.00\r\n2.00\r\n8.00\r\n2.25\r\n2.25\r\n9.00\r\n2.50\r\n2.50\r\n10.00\r\n2.75\r\n2.75\r\n11.00\r\n3.00\r\n3.00\r\n12.00\r\n3.25\r\n3.25\r\n13.00\r\n3.50\r\n3.50\r\n14.00\r\n3.75\r\n3.75\r\n15.00\r\n4.00\r\n4.00\r\n16.00\r\n4.25\r\n4.25\r\n17.00\r\n4.50\r\n4.50\r\n18.00\r\n4.75\r\n4.75\r\n19.00\r\n5.00\r\n5.00\r\n20.00\r\n21.00\r\n22.00\r\n23.00\r\n24.00\r\n25.00\r\n26.00\r\n27.00\r\n28.00\r\n29.00\r\n30.00\r\n31.00\r\n32.00\r\n33.00\r\n34.00\r\n35.00\r\n36.00\r\n37.00\r\n38.00\r\n39.00\r\n40.00\r\n41.00\r\n42.00\r\n43.00\r\n44.00\r\n45.00\r\n46.00\r\n47.00\r\n48.00\r\n49.00\r\n50.00\r\n", _resultStringBuilder.ToString()); }
private void LongHighlight(SolidColorBrush brush, TweenHandler globalTweenHandler) { var targetBrush = AssociatedObject.FindResource("Background3") as SolidColorBrush; var initialHighlightBrush = AssociatedObject.FindResource("Foreground1") as SolidColorBrush; var targetColor = targetBrush?.Color ?? Colors.White; var initialColor = initialHighlightBrush?.Color ?? Colors.White; brush.Color = initialColor; AssociatedObject.Fill = brush; var highlightTween = brush.Tween(x => x.Color, ColorTween.ColorProgressFunction) .To(targetColor).In(2).Ease(Easing.ExpoEaseIn); var opacityTween = AssociatedObject.Tween(x => x.Opacity).To(1).In(0.1); globalTweenHandler.Add(new SequenceOfTarget(AssociatedObject, highlightTween, opacityTween)); }
private void FastHighlight(SolidColorBrush brush, TweenHandler globalTweenHandler) { var targetBrush = AssociatedObject.FindResource("Background3") as SolidColorBrush; var background = AssociatedObject.FindResource("Background1") as SolidColorBrush; var initialHighlightBrush = AssociatedObject.FindResource("Foreground1") as SolidColorBrush; var targetColor = targetBrush?.Color ?? Colors.White; var initialColor = initialHighlightBrush?.Color ?? Colors.White; brush.Color = background?.Color ?? new Color(); AssociatedObject.Fill = brush; var initialTime = 0.5; var toInitialColor = brush.Tween(x => x.Color, ColorTween.ColorProgressFunction) .To(initialColor).In(initialTime).Ease(Easing.QuinticEaseIn); var highlightTween = brush.Tween(x => x.Color, ColorTween.ColorProgressFunction) .To(targetColor).In(0.5).Ease(Easing.QuinticEaseOut).Delay(initialTime + 0.05); var opacityTween = AssociatedObject.Tween(x => x.Opacity).To(1).In(0); globalTweenHandler.Add(new SequenceOfTarget(AssociatedObject, highlightTween, opacityTween, toInitialColor)); }