/// <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);
            };
        }

  

posted on 2020-09-22 15:10  永恒921  阅读(427)  评论(0编辑  收藏  举报