/// <summary> /// 禁用窗体最大最小按键 /// </summary> internal static class WindowExtensions { [DllImport("user32.dll")] internal extern static int SetWindowLong(IntPtr hwnd, int index, int value); [DllImport("user32.dll")] internal extern static int GetWindowLong(IntPtr hwnd, int index); internal static void HideMinimizeAndMaximizeButtons(System.Windows.Window window) { const int GWL_STYLE = -16; IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle; long value = GetWindowLong(hwnd, GWL_STYLE); SetWindowLong(hwnd, GWL_STYLE, (int)(value & -131073 & -65537)); } internal static void DisableMinimizeButton(System.Windows.Window window) { const int GWL_STYLE = -16; IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle; long value = GetWindowLong(hwnd, GWL_STYLE); SetWindowLong(hwnd, GWL_STYLE, (int)(value & -131073)); } internal static void DisableMaximizeButton(System.Windows.Window window) { const int GWL_STYLE = -16; IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle; long value = GetWindowLong(hwnd, GWL_STYLE); SetWindowLong(hwnd, GWL_STYLE, (int)(value & -65537 & -131073)); } }
用法
public Window2() { InitializeComponent(); this.SourceInitialized += (x, y) => { WindowExtensions.DisableMinimizeButton(this); }; }