Exemplo n.º 1
0
        public DownloadsIndicator()
        {
            DefaultStyleKey = typeof(DownloadsIndicator);

            var compositor = Window.Current.Compositor;
            var source     = new Downloading();

            var visual = source.TryCreateAnimatedVisual(compositor, out _);

            if (visual == null)
            {
                return;
            }

            _visual = visual;
            _visual.RootVisual.Scale = new System.Numerics.Vector3(0.1f, 0.1f, 1);
            _visualSource            = source;

            ThemeChanged();

            var linearEasing = compositor.CreateLinearEasingFunction();

            _animation          = compositor.CreateScalarKeyFrameAnimation();
            _animation.Duration = visual.Duration;
            _animation.InsertKeyFrame(1, 60f / 90f, linearEasing);
            //animation.IterationBehavior = AnimationIterationBehavior.Forever;

            _properties = compositor.CreatePropertySet();
            _properties.InsertScalar("Progress", 30f / 90f);

            var progressAnimation = compositor.CreateExpressionAnimation("_.Progress");

            progressAnimation.SetReferenceParameter("_", _properties);
            visual.RootVisual.Properties.InsertScalar("Progress", 0.0F);
            visual.RootVisual.Properties.StartAnimation("Progress", progressAnimation);

            ActualThemeChanged += OnActualThemeChanged;
        }