public static void UpdateWin32Style(MetroWindow window) { const int GWL_STYLE = -16; const int WS_SYSMENU = 0x00080000; IntPtr hWnd = new WindowInteropHelper(window).Handle; // The whole title bar is restyled. We must hide the system menu or Windows // will sometimes paint the title bar for us. SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) & ~WS_SYSMENU); }
void UpdatePadding(MetroWindow window) { Debug.Assert(window != null); var state = window.IsFullScreen ? WindowState.Maximized : window.WindowState; switch (state) { default: case WindowState.Normal: border.ClearValue(Border.PaddingProperty); border.BorderThickness = oldThickness; break; case WindowState.Minimized: case WindowState.Maximized: double magicx, magicy; magicx = magicy = 10;//TODO: Figure out how this value is calculated (it's not ResizeBorderThickness.Left/Top) double deltax = magicx - SystemParameters.ResizeFrameVerticalBorderWidth; double deltay = magicy - SystemParameters.ResizeFrameHorizontalBorderHeight; Debug.Assert(deltax >= 0 && deltay >= 0); if (deltax < 0) deltax = 0; if (deltay < 0) deltay = 0; border.Padding = new Thickness( SystemParameters.BorderWidth + border.BorderThickness.Left + deltax, SystemParameters.BorderWidth + border.BorderThickness.Top + deltay, SystemParameters.BorderWidth + border.BorderThickness.Right + deltax, SystemParameters.BorderWidth + border.BorderThickness.Bottom + deltay); border.BorderThickness = new Thickness(0); break; } }