Пример #1
0
        private void CleanUp()
        {
            effectBrush?.Dispose();
            effectFactory?.Dispose();

            glassEffect?.Dispose();
        }
Пример #2
0
        private void Canvas_CreateResources(CanvasAnimatedControl sender, Microsoft.Graphics.Canvas.UI.CanvasCreateResourcesEventArgs args)
        {
            Debug.WriteLine("CreateResource");

            if (blurEffect != null)
            {
                blurEffect.Dispose();
            }

            if (this.AllowBlur == true)
            {
                Debug.WriteLine("CreateResource new GaussianBlurEffect");
                blurEffect = new GaussianBlurEffect();
            }

            this.CreateResources?.Invoke(sender, args);
        }
Пример #3
0
 public void Dispose()
 {
     _cl?.Dispose();
     _cl = null;
     morphology?.Dispose();
     morphology = null;
     blur?.Dispose();
     blur = null;
 }
Пример #4
0
 public void Dispose()
 {
     if (tempSurface != null)
     {
         bound = default(Rect);
         tempSurface.Dispose();
         blur.Dispose();
         canDraw = false;
     }
 }
Пример #5
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();
        }