public static bool ExtendGlassFrame(Window window, Thickness margin) { try { // desktop window manader must be enabled if it isn't don't bother trying to add glass if (!DwmIsCompositionEnabled()) { return false; } IntPtr hwnd = new WindowInteropHelper(window).Handle; if (hwnd == IntPtr.Zero) { throw new InvalidOperationException("The Window must be shown before extending glass."); } // Set the background to transparent from both the WPF and Win32 perspectives //window.Background = Brushes.Transparent; HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.Transparent; MARGINS margins = new MARGINS(margin); DwmExtendFrameIntoClientArea(hwnd, ref margins); return true; } catch { return false; } }
private static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);