Exemplo n.º 1
0
        private void DisconnectAcryilicBrush()
        {
            if (backdropBrush != null)
            {
                backdropBrush.Dispose();
                backdropBrush = null;
            }

            if (CompositionBrush != null)
            {
                CompositionBrush.Dispose();
                CompositionBrush = null;
            }
        }
Exemplo n.º 2
0
        private void UserControl_Unloaded(object sender, RoutedEventArgs e)
        {
            StopAnimating();

            timer.Tick -= Timer_Tick;

            compositor.Dispose();
            effectBrush.Dispose();
            backdropBrush.Dispose();
            effectFactory.Dispose();
            hostVisual.Dispose();

            if (glassVisual != null)
            {
                glassVisual.Dispose();
            }
        }
Exemplo n.º 3
0
        public static void InitializeBlur(UIElement uiElement)
        {
            Visual             hostVisual  = ElementCompositionPreview.GetElementVisual(uiElement);
            Compositor         compositor  = hostVisual.Compositor;
            string             name        = "backdropBrush";
            GaussianBlurEffect gausianBlur = new GaussianBlurEffect()
            {
                BlurAmount = 30f,
                BorderMode = EffectBorderMode.Hard,
                Source     = new ArithmeticCompositeEffect()
                {
                    MultiplyAmount = 0,
                    Source1Amount  = 1f,
                    Source1        = new CompositionEffectSourceParameter(name),
                    Source2Amount  = 0f,
                    Source2        = new ColorSourceEffect()
                    {
                        Color = Color.FromArgb(255, 245, 245, 245)
                    }
                }
            };
            CompositionEffectFactory effectFactory = compositor.CreateEffectFactory(gausianBlur);
            CompositionBackdropBrush backdropBrush = compositor.CreateBackdropBrush();
            CompositionEffectBrush   effectBrush   = effectFactory.CreateBrush();

            effectBrush.SetSourceParameter(name, backdropBrush);
            SpriteVisual glassVisual = compositor.CreateSpriteVisual();

            glassVisual.Brush = effectBrush;
            ElementCompositionPreview.SetElementChildVisual(uiElement, glassVisual);
            ExpressionAnimation bindSizeAnimation = compositor.CreateExpressionAnimation("hostVisual.Size");

            bindSizeAnimation.SetReferenceParameter("hostVisual", hostVisual);
            glassVisual.StartAnimation("Size", bindSizeAnimation);

            effectFactory.Dispose();
            gausianBlur.Dispose();
            backdropBrush.Dispose();
        }