private void CleanUp() { effectBrush?.Dispose(); effectFactory?.Dispose(); glassEffect?.Dispose(); }
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); }
public void Dispose() { _cl?.Dispose(); _cl = null; morphology?.Dispose(); morphology = null; blur?.Dispose(); blur = null; }
public void Dispose() { if (tempSurface != null) { bound = default(Rect); tempSurface.Dispose(); blur.Dispose(); canDraw = false; } }
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(); }