Example #1
0
        private void NewParticlesImage(IAdornmentLayer adornmentLayer, IWpfTextView view)
        {
            var particles = new Image();

            particles.UpdateSource(GetParticlesImage());
            adornmentLayer.AddAdornment(AdornmentPositioningBehavior.ViewportRelative, null, null, particles, null);
            particlesList.Add(particles);

            try
            {
                var top  = view.Caret.Top;
                var left = view.Caret.Left;
                particles.BeginAnimation(Canvas.TopProperty, GetParticlesTopAnimation(top));
                particles.BeginAnimation(Canvas.LeftProperty, GetParticlesLeftAnimation(left));
                var opacityAnimation = GetParticlesOpacityAnimation();
                opacityAnimation.Completed += (sender, e) =>
                {
                    particles.Visibility = Visibility.Hidden;
                    adornmentLayer.RemoveAdornment(particles);
                    particlesList.Remove(particles);
                };
                particles.BeginAnimation(UIElement.OpacityProperty, opacityAnimation);
            }
            catch
            {
                adornmentLayer.RemoveAdornment(particles);
                particlesList.Remove(particles);
            }
        }
Example #2
0
        private void NewParticleImage(IAdornmentLayer adornmentLayer, IWpfTextView view, bool isPartyMode)
        {
            try
            {
                var particles = new Image();
                particles.UpdateSource(GetParticleImage());
                adornmentLayer.AddAdornment(AdornmentPositioningBehavior.ViewportRelative, null, null, particles, null);
                particlesList.Add(particles);

                try
                {
                    var top = isPartyMode
                        ? RandomUtils.Random.Next((int)view.ViewportTop, (int)view.ViewportBottom)
                        : view.Caret.Top;
                    var left = isPartyMode
                        ? RandomUtils.Random.Next((int)view.ViewportLeft, (int)view.ViewportRight)
                        : view.Caret.Left;
                    particles.BeginAnimation(Canvas.TopProperty, GetParticleTopAnimation(top));
                    particles.BeginAnimation(Canvas.LeftProperty, GetParticleLeftAnimation(left));
                    var opacityAnimation = GetParticleOpacityAnimation();
                    opacityAnimation.Completed += (sender, e) =>
                    {
                        particles.Visibility = Visibility.Hidden;
                        adornmentLayer.RemoveAdornment(particles);
                        particlesList.Remove(particles);
                    };
                    particles.BeginAnimation(UIElement.OpacityProperty, opacityAnimation);
                }
                catch
                {
                    adornmentLayer.RemoveAdornment(particles);
                    particlesList.Remove(particles);
                }
            }
            catch
            {
            }
        }