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));
        }
Esempio n. 2
0
        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));
        }