internal void EnableBlur(IntPtr handle) { var accent = new AccentPolicy(); var accentStructSize = Marshal.SizeOf(accent); accent.AccentState = AccentState.ACCENT_ENABLE_BLURBEHIND; accent.AccentFlags = 2; var opacity = (byte)(this.sldOpacity.Value * 255); var col = HSVColor.FromHSV((float)this.hsvSelector.Hue, 1, 1).ToRGB(); var color = (opacity << 24) + (col.B << 16) + (col.G << 8) + col.R; accent.GradientColor = (uint)color; var accentPtr = Marshal.AllocHGlobal(accentStructSize); Marshal.StructureToPtr(accent, accentPtr, false); var data = new WindowCompositionAttributeData(); data.Attribute = WindowCompositionAttribute.WCA_ACCENT_POLICY; data.SizeOfData = accentStructSize; data.Data = accentPtr; SetWindowCompositionAttribute(handle, ref data); Marshal.FreeHGlobal(accentPtr); }