void WpfHexView_Loaded(object sender, RoutedEventArgs e) { canvas.Loaded -= WpfHexView_Loaded; var window = Window.GetWindow(canvas); metroWindow = window as MetroWindow; Debug.Assert(window != null); if (metroWindow != null) { metroWindow.WindowDpiChanged += MetroWindow_WindowDpiChanged; MetroWindow_WindowDpiChanged(metroWindow, EventArgs.Empty); ZoomLevelChanged?.Invoke(this, new VSTE.ZoomLevelChangedEventArgs(ZoomLevel, canvas.LayoutTransform)); return; } }
internal 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; } }
public MaximizedWindowFixer(MetroWindow metroWindow, Border border) { this.border = border; oldThickness = border.BorderThickness; this.metroWindow = metroWindow; metroWindow.StateChanged += MetroWindow_StateChanged; border.Loaded += border_Loaded; }
/// <summary> /// Constructor /// </summary> /// <param name="metroWindow">Created instance</param> public MetroWindowCreatedEventArgs(MetroWindow metroWindow) { if (metroWindow == null) throw new ArgumentNullException(nameof(metroWindow)); MetroWindow = metroWindow; }
/// <summary> /// Constructor /// </summary> /// <param name="metroWindow">Created instance</param> public MetroWindowCreatedEventArgs(MetroWindow metroWindow) => MetroWindow = metroWindow ?? throw new ArgumentNullException(nameof(metroWindow));