static void EffectBlurBehindMode(Window window, BlurBehindMode mode) { window.Activated -= EffectBlurBehindOff; window.Activated -= EffectBlurBehindOn; window.Deactivated -= EffectBlurBehindOff; window.Deactivated -= EffectBlurBehindOn; switch (mode) { case BlurBehindMode.Off: EffectBlurBehind(window, false); break; case BlurBehindMode.On: EffectBlurBehind(window, true); break; case BlurBehindMode.OnActivated: window.Activated += EffectBlurBehindOn; window.Deactivated += EffectBlurBehindOff; EffectBlurBehind(window, window.IsActive); break; case BlurBehindMode.OnDeactivated: window.Deactivated += EffectBlurBehindOn; window.Activated += EffectBlurBehindOff; EffectBlurBehind(window, !window.IsActive); break; } }
/// <summary> /// Sets the value of the BlurBehind attached dependency property for the specified window /// </summary> /// <param name="window">The window for which to set the value</param> /// <param name="value">The value to set</param> public static void SetBlurBehind(Window window, BlurBehindMode value) { if (window is null) { throw new ArgumentNullException(nameof(window)); } window.SetValue(BlurBehindProperty, value); }