private static extern void DwmEnableBlurBehindWindow(IntPtr hWnd, ref BLURBEHIND pBlurBehind);
/// <summary> /// Toggle the Blurred glass on the specified window region of the client area of a Window. /// </summary> /// <param name="window">The window.</param> /// <param name="enable">if set to <c>true</c> enable, otherwise disable.</param> /// <param name="region">A pointer to the region to to enable blur on, or IntPtr.Zero for the whole window</param> /// <param name="transition">If set to <c>true</c> transition the blur on Maximized.</param> public static void EnableBlurBehind(this Window window, bool enable, IntPtr region, bool transition) { var blurBehind = new BLURBEHIND { Flags = (BlurBehindOptions.Enable | BlurBehindOptions.TransitionOnMaximized), Enable = enable, TransitionOnMaximized = transition }; if (enable && IntPtr.Zero != region) { blurBehind.Flags |= BlurBehindOptions.BlurRegion; blurBehind.RegionBlur = region; } DwmEnableBlurBehindWindow(new WindowInteropHelper(window).Handle, ref blurBehind); }