Пример #1
0
 private void ChangeBrushBack(CompositionColorGradientStop target, CompositionColorGradientStop target1)
 {
     if (target.Color == Colors.Honeydew)
     {
         target1.StartAnimation(nameof(target1.Color), _colorAnimGradientStop1);
         target.StartAnimation(nameof(target.Color), _colorAnimGradientStop2);
     }
     else if (target.Color == Colors.LightSkyBlue)
     {
         target1.StartAnimation(nameof(target1.Color), _changeb1stop1);
         target.StartAnimation(nameof(target.Color), _changeb1stop2);
     }
 }
Пример #2
0
 private void AnimateBrushStop1(CompositionColorGradientStop target, CompositionColorGradientStop target1)
 {
     if (target.Color == Colors.DeepPink)
     {
         target.StartAnimation(nameof(target.Color), _colorAnimGradientStop1);
         target1.StartAnimation(nameof(target1.Color), _colorAnimGradientStop2);
     }
     else if (target.Color == Colors.Teal)
     {
         target.StartAnimation(nameof(target.Color), _changeb1stop1);
         target1.StartAnimation(nameof(target1.Color), _changeb1stop2);
     }
 }
Пример #3
0
 private void pointerPressedChangeColors(CompositionColorGradientStop target, CompositionColorGradientStop target1)
 {
     if (target.Color == Colors.DeepPink || target.Color == Colors.Honeydew)
     {
         target.StartAnimation(nameof(target.Color), _changeb1stop1);
         target1.StartAnimation(nameof(target1.Color), _changeb1stop2);
     }
     else if (target.Color == Colors.LightSkyBlue || target.Color == Colors.Teal)
     {
         target1.StartAnimation(nameof(target1.Color), _colorAnimGradientStop1);
         target.StartAnimation(nameof(target.Color), _colorAnimGradientStop2);
     }
 }
Пример #4
0
        // when the first visual is clicked, it switches the brush on the visual from warm to cool colors and animates those color stops
        private void OnClick(object sender, RoutedEventArgs e)
        {
            if (_isAnimationOn == false)
            {
                // animate the first stop of the first visual
                _stop1Anim = _compositor.CreateColorKeyFrameAnimation();
                _stop1Anim.InsertKeyFrame(0, _warmColor1);
                _stop1Anim.InsertKeyFrame(.5f, _warmColor3);
                _stop1Anim.InsertKeyFrame(1, _warmColor1);
                _stop1Anim.Duration          = TimeSpan.FromSeconds(4);
                _stop1Anim.IterationBehavior = AnimationIterationBehavior.Forever;

                _MBGradientStop1.StartAnimation("Color", _stop1Anim);

                // animate the second stop of the first visual
                _stop2Anim = _compositor.CreateColorKeyFrameAnimation();
                _stop2Anim.InsertKeyFrame(0, _warmColor3);
                _stop2Anim.InsertKeyFrame(1, _warmColor2);
                _stop2Anim.Duration          = TimeSpan.FromSeconds(2);
                _stop2Anim.IterationBehavior = AnimationIterationBehavior.Forever;

                _MBGradientStop2.StartAnimation("Color", _stop2Anim);

                _isAnimationOn = true;
            }
            else
            {
                // animate the first stop of the first visual
                _stop1Anim = _compositor.CreateColorKeyFrameAnimation();
                _stop1Anim.InsertKeyFrame(0, _coolColor1);
                _stop1Anim.InsertKeyFrame(.5f, _coolColor3);
                _stop1Anim.InsertKeyFrame(1, _coolColor1);
                _stop1Anim.Duration          = TimeSpan.FromSeconds(4);
                _stop1Anim.IterationBehavior = AnimationIterationBehavior.Forever;

                _MBGradientStop1.StartAnimation("Color", _stop1Anim);

                // animate the second stop of the first visual
                _stop2Anim.InsertKeyFrame(0, _coolColor3);
                _stop2Anim.InsertKeyFrame(1, _coolColor2);
                _stop2Anim.Duration          = TimeSpan.FromSeconds(2);
                _stop2Anim.IterationBehavior = AnimationIterationBehavior.Forever;

                _MBGradientStop2.StartAnimation("Color", _stop2Anim);

                _isAnimationOn = false;
            }
        }
Пример #5
0
        private void StartOffsetAnimation(CompositionColorGradientStop gradientOffset, float offset)
        {
            var offsetAnimation = _compositor.CreateScalarKeyFrameAnimation();

            offsetAnimation.Duration = TimeSpan.FromSeconds(1);
            offsetAnimation.InsertKeyFrame(1.0f, offset);
            gradientOffset.StartAnimation(nameof(CompositionColorGradientStop.Offset), offsetAnimation);
        }
Пример #6
0
        private void StartColorAnimation(CompositionColorGradientStop gradientOffset, Color color)
        {
            var colorAnimation = _compositor.CreateColorKeyFrameAnimation();

            colorAnimation.Duration  = TimeSpan.FromSeconds(2);
            colorAnimation.Direction = Windows.UI.Composition.AnimationDirection.Alternate;
            colorAnimation.InsertKeyFrame(1.0f, color);
            gradientOffset.StartAnimation(nameof(CompositionColorGradientStop.Color), colorAnimation);
        }
Пример #7
0
        private void InitLGBAnimation(CompositionColorGradientStop stop, int duration, float offsetAdjustment)
        {
            ScalarKeyFrameAnimation animateStop = _compositor.CreateScalarKeyFrameAnimation();

            animateStop.InsertKeyFrame(0.0f, stop.Offset);
            animateStop.InsertKeyFrame(0.5f, stop.Offset + offsetAdjustment);
            animateStop.InsertKeyFrame(1.0f, stop.Offset);
            animateStop.IterationBehavior = AnimationIterationBehavior.Forever;
            animateStop.Duration          = TimeSpan.FromSeconds(duration);
            stop.StartAnimation(nameof(stop.Offset), animateStop);
        }
        private void AnimateLinearGradientstopOffset(CompositionColorGradientStop stop, TimeSpan duration, float offsetAdjustment)
        {
            var animateStop = _compositor.CreateScalarKeyFrameAnimation();

            animateStop.InsertKeyFrame(0, stop.Offset);
            animateStop.InsertKeyFrame(0.5f, stop.Offset + offsetAdjustment);
            animateStop.InsertKeyFrame(1, stop.Offset);
            animateStop.IterationBehavior = AnimationIterationBehavior.Forever;
            animateStop.Duration          = duration;
            stop.StartAnimation(nameof(stop.Offset), animateStop);
        }
Пример #9
0
        private void UpdateGradients()
        {
            var relaxGradientStopOffsetAnimation = _compositor.CreateScalarKeyFrameAnimation();

            relaxGradientStopOffsetAnimation.Duration = TimeSpan.FromSeconds(1);
            // relaxGradientStopOffsetAnimation.DelayTime = TimeSpan.FromSeconds(2);
            relaxGradientStopOffsetAnimation.InsertKeyFrame(1.0f, ViewModel.IsInPomodoro ?1.0f : 0.75f);
            _relaxGradientStop.StartAnimation(nameof(_relaxGradientStop.Offset), relaxGradientStopOffsetAnimation);

            var focusGradientStopOffsetAnimation = _compositor.CreateScalarKeyFrameAnimation();

            focusGradientStopOffsetAnimation.Duration = TimeSpan.FromSeconds(1);
            //focusGradientStopOffsetAnimation.DelayTime = TimeSpan.FromSeconds(2);
            focusGradientStopOffsetAnimation.InsertKeyFrame(1.0f, ViewModel.IsInPomodoro ? 0.25f : 0.0f);
            _focusGradientStop.StartAnimation(nameof(_focusGradientStop.Offset), focusGradientStopOffsetAnimation);
        }
        private SpriteVisual GetRadialGradientVisualWithAnimation(Vector2 size,
                                                                  Vector2 gradientOrigin,
                                                                  Vector2 ellipseCenter,
                                                                  Vector2 ellipseRadius)
        {
            // Create radial gradient brush.
            var gradientBrush = _compositor.CreateRadialGradientBrush();

            gradientBrush.GradientOriginOffset = gradientOrigin;
            gradientBrush.EllipseCenter        = ellipseCenter;
            gradientBrush.EllipseRadius        = ellipseRadius;

            // Add the color stops. The first color stop needs a name so you can refer to it later.
            CompositionColorGradientStop ColorStop1 = _compositor.CreateColorGradientStop(0, Colors.Blue);

            gradientBrush.ColorStops.Add(ColorStop1);
            gradientBrush.ColorStops.Add(_compositor.CreateColorGradientStop(1, Colors.LightBlue));
            gradientBrush.ColorStops.Add(_compositor.CreateColorGradientStop(1, Colors.Navy));
            gradientBrush.ColorStops.Add(_compositor.CreateColorGradientStop(1, Colors.White));

            // Set up animation for ColorStop1's color.
            var colorAnimation = _compositor.CreateColorKeyFrameAnimation();

            colorAnimation.InsertKeyFrame(0.0f, Colors.Blue);
            colorAnimation.InsertKeyFrame(0.5f, Colors.LightBlue);
            colorAnimation.InsertKeyFrame(0.75f, Colors.Navy);
            colorAnimation.InsertKeyFrame(1.0f, Colors.Blue);
            colorAnimation.Duration          = TimeSpan.FromSeconds(5);
            colorAnimation.IterationBehavior = AnimationIterationBehavior.Forever;
            ColorStop1.StartAnimation("Color", colorAnimation);

            // SpriteVisual to be painted with gradated content.
            var gradientVisual = _compositor.CreateSpriteVisual();

            gradientVisual.Size = size;
            // Set brush on the SpriteVisual.
            gradientVisual.Brush = gradientBrush;

            return(gradientVisual);
        }
Пример #11
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            // create the compositor
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            // create what captures the pointer position
            _hoverPositionPropertySet = ElementCompositionPreview.GetPointerPositionPropertySet(r2);

            // create the two visuals
            _vis      = _compositor.CreateSpriteVisual();
            _pulseVis = _compositor.CreateSpriteVisual();

            // create the main brush with warm colors
            _mainBrush = _compositor.CreateRadialGradientBrush();
            _mainBrush.EllipseCenter = new Vector2(.5f, .5f);
            _mainBrush.EllipseRadius = new Vector2(.5f, .5f);

            _MBGradientStop1        = _compositor.CreateColorGradientStop();
            _MBGradientStop1.Offset = 0;
            _MBGradientStop1.Color  = _warmColor1;

            _MBGradientStop2        = _compositor.CreateColorGradientStop();
            _MBGradientStop2.Offset = .1f;
            _MBGradientStop2.Color  = _warmColor2;

            _MBGradientStop3        = _compositor.CreateColorGradientStop();
            _MBGradientStop3.Offset = 1;
            _MBGradientStop3.Color  = _warmColor3;

            _mainBrush.ColorStops.Add(_MBGradientStop1);
            _mainBrush.ColorStops.Add(_MBGradientStop2);
            _mainBrush.ColorStops.Add(_MBGradientStop3);

            // create the brush for the pulse visual
            _pulseBrush = _compositor.CreateRadialGradientBrush();
            _pulseBrush.EllipseCenter = new Vector2(.5f, .5f);
            _pulseBrush.EllipseRadius = new Vector2(.5f, .5f);

            _PBGradientStop1        = _compositor.CreateColorGradientStop();
            _PBGradientStop1.Offset = 0;
            _PBGradientStop1.Color  = _innerPulseColor;

            _PBGradientStop2        = _compositor.CreateColorGradientStop();
            _PBGradientStop2.Offset = 1;
            _PBGradientStop2.Color  = _innerPulseColor;

            _pulseBrush.ColorStops.Add(_PBGradientStop1);
            _pulseBrush.ColorStops.Add(_PBGradientStop2);

            // finish setting properties of the first visual
            _vis.Size        = new Vector2(300, 300);
            _vis.Offset      = new Vector3(((float)r2.ActualWidth / 2), ((float)r2.ActualHeight / 2), 0);
            _vis.AnchorPoint = new Vector2(.5f, .5f);
            _vis.Brush       = _mainBrush;

            // finish setting properties of the pulsing visual
            _pulseVis.Size        = new Vector2(500, 500);
            _pulseVis.Offset      = new Vector3(((float)r1.ActualWidth / 2), ((float)r1.ActualHeight / 2), 0);
            _pulseVis.AnchorPoint = new Vector2(.5f, .5f);
            _pulseVis.Brush       = _pulseBrush;

            // create the clip that makes the visuals circular
            CompositionGeometricClip   gClip  = _compositor.CreateGeometricClip();
            CompositionEllipseGeometry circle = _compositor.CreateEllipseGeometry();

            circle.Radius  = new Vector2(_vis.Size.X / 2, _vis.Size.Y / 2);
            circle.Center  = new Vector2(_vis.Size.X / 2, _vis.Size.Y / 2);
            gClip.Geometry = circle;

            _vis.Clip = gClip;

            CompositionGeometricClip   gClip2  = _compositor.CreateGeometricClip();
            CompositionEllipseGeometry circle2 = _compositor.CreateEllipseGeometry();

            circle2.Radius  = new Vector2(_pulseVis.Size.X / 2, _pulseVis.Size.Y / 2);
            circle2.Center  = new Vector2(_pulseVis.Size.X / 2, _pulseVis.Size.Y / 2);
            gClip2.Geometry = circle2;

            _pulseVis.Clip = gClip2;

            // set the pointer
            my_pointer = new Vector3(((float)r1.ActualWidth / 2), ((float)r1.ActualHeight / 2), 0);

            // set the visuals in the tree
            ElementCompositionPreview.SetElementChildVisual(r2, _vis);
            ElementCompositionPreview.SetElementChildVisual(r1, _pulseVis);

            // ellipse center follows mouse
            _ellipseCenterAnim = _compositor.CreateExpressionAnimation("Vector2(p.Position.X / 500.0f, p.Position.Y / 500.0f)");
            _ellipseCenterAnim.SetReferenceParameter("p", _hoverPositionPropertySet);
            _mainBrush.StartAnimation("EllipseCenter", _ellipseCenterAnim);

            // second stop is animated for "pulsing" effect within the first visual that runs constantly
            _offsetAnim = _compositor.CreateScalarKeyFrameAnimation();
            _offsetAnim.InsertKeyFrame(0, 0);
            _offsetAnim.InsertKeyFrame(1f, 1f);
            _offsetAnim.Duration       = TimeSpan.FromSeconds(2);
            _offsetAnim.IterationCount = 50;

            _MBGradientStop2.StartAnimation("Offset", _offsetAnim);

            // set up the animation for the backing pulse visual
            // animate the color
            _pulseColorAnim = _compositor.CreateColorKeyFrameAnimation();
            _pulseColorAnim.InsertKeyFrame(0, _innerPulseColor);
            _pulseColorAnim.InsertKeyFrame(.99f, _outerPulseColor);
            _pulseColorAnim.InsertKeyFrame(1, _innerPulseColor);
            _pulseColorAnim.Duration          = TimeSpan.FromSeconds(1);
            _pulseColorAnim.IterationBehavior = AnimationIterationBehavior.Forever;

            _PBGradientStop1.StartAnimation("Color", _pulseColorAnim);

            // animate offset of first stop
            _pulseStop1OffsetAnim = _compositor.CreateScalarKeyFrameAnimation();
            _pulseStop1OffsetAnim.InsertKeyFrame(0, 0);
            _pulseStop1OffsetAnim.InsertKeyFrame(1f, 1f);
            _pulseStop1OffsetAnim.Duration          = TimeSpan.FromSeconds(1);
            _pulseStop1OffsetAnim.IterationBehavior = AnimationIterationBehavior.Forever;

            _PBGradientStop1.StartAnimation("Offset", _pulseStop1OffsetAnim);

            // animate offset of second stop
            _pulseStop2OffsetAnim = _compositor.CreateScalarKeyFrameAnimation();
            _pulseStop2OffsetAnim.InsertKeyFrame(0, 0);
            _pulseStop2OffsetAnim.InsertKeyFrame(1f, 1f);
            _pulseStop2OffsetAnim.Duration          = TimeSpan.FromSeconds(1);
            _pulseStop2OffsetAnim.IterationBehavior = AnimationIterationBehavior.Forever;
            _pulseStop2OffsetAnim.DelayTime         = TimeSpan.FromSeconds(.25f);

            _PBGradientStop2.StartAnimation("Offset", _pulseStop2OffsetAnim);

            _pulseScaleAnim = _compositor.CreateVector3KeyFrameAnimation();
            _pulseScaleAnim.InsertKeyFrame(0, Vector3.Zero);
            _pulseScaleAnim.InsertKeyFrame(1, Vector3.One);
            _pulseScaleAnim.Duration          = TimeSpan.FromSeconds(1);
            _pulseScaleAnim.IterationBehavior = AnimationIterationBehavior.Forever;

            _pulseVis.StartAnimation("Scale", _pulseScaleAnim);
        }
Пример #12
0
        private Visual CreateRectangleElement(Vector2 size)
        {
            var element = _compositor.CreateContainerVisual();

            element.Size   = new Vector2(0.0f, 0.0f);
            element.Offset = new Vector3(0.0f, 0.0f, 0.0f);

            // Create radial gradient brush.
            CompositionRadialGradientBrush RGBrush = _compositor.CreateRadialGradientBrush();

            // Create the color stops by defining the offset and color.
            CompositionColorGradientStop ColorStop1 = _compositor.CreateColorGradientStop();

            ColorStop1.Offset = 0;
            ColorStop1.Color  = Colors.Blue;
            CompositionColorGradientStop ColorStop2 = _compositor.CreateColorGradientStop();

            ColorStop2.Offset = 0.75f;
            ColorStop2.Color  = Colors.LightBlue;
            CompositionColorGradientStop ColorStop3 = _compositor.CreateColorGradientStop();

            ColorStop3.Offset = 1.5f;
            ColorStop3.Color  = Colors.Navy;

            RGBrush.ColorStops.Add(ColorStop1);
            RGBrush.ColorStops.Add(ColorStop2);
            RGBrush.ColorStops.Add(ColorStop3);

            // Set up animation for ColorStop1's color.
            var colorAnimation = _compositor.CreateColorKeyFrameAnimation();

            colorAnimation.InsertKeyFrame(0.0f, Colors.Blue);
            colorAnimation.InsertKeyFrame(0.25f, Colors.LightBlue);
            colorAnimation.InsertKeyFrame(0.5f, Colors.Navy);
            colorAnimation.InsertKeyFrame(0.75f, Colors.LightBlue);
            colorAnimation.InsertKeyFrame(1.0f, Colors.Blue);
            colorAnimation.Duration          = TimeSpan.FromSeconds(8);
            colorAnimation.IterationBehavior = AnimationIterationBehavior.Forever;
            ColorStop1.StartAnimation("Color", colorAnimation);

            //Create Shadow
            var visual0 = _compositor.CreateSpriteVisual();

            visual0.Size = new Vector2(size.X + 2, size.Y + 2);
            //Create drop shadow
            DropShadow shadow = _compositor.CreateDropShadow();

            shadow.BlurRadius = 5;
            shadow.Offset     = new Vector3(0, 0, 0);
            shadow.Color      = Colors.DarkGray;
            //Associate shadow to visual
            visual0.Shadow = shadow;
            element.Children.InsertAtBottom(visual0);


            //Create Rounded Rectangle
            var roundedRect = _compositor.CreateRoundedRectangleGeometry();

            roundedRect.Size         = new Vector2(size.X, size.Y);
            roundedRect.CornerRadius = new Vector2(7, 7);

            var rectShape = _compositor.CreateSpriteShape(roundedRect);

            rectShape.FillBrush = RGBrush;
            rectShape.Offset    = new Vector2(0f, 0f);

            var visual = _compositor.CreateShapeVisual();

            visual.Size = new Vector2(size.X, size.Y);
            visual.Shapes.Add(rectShape);
            element.Children.InsertAtTop(visual);

            element.Opacity = 0.8f;
            element.Size    = visual.Size;
            return(element);
        }
Пример #13
0
 private void canvas_PointerPressed(object sender, PointerRoutedEventArgs e)
 {
     isPressed = true;
     ColorStop1.StartAnimation(nameof(ColorStop1.Color), color1Animation);
     canvas_PointerMoved(sender, e);
 }