How to remove minimize and maximize buttons from a resizable window? How to remove minimize and maximize buttons from a resizable window? wpf wpf

How to remove minimize and maximize buttons from a resizable window?


I've stolen some code I found on the MSDN forums and made an extension method on the Window class, like this:

internal static class WindowExtensions{    // from winuser.h    private const int GWL_STYLE      = -16,                      WS_MAXIMIZEBOX = 0x10000,                      WS_MINIMIZEBOX = 0x20000;    [DllImport("user32.dll")]    extern private static int GetWindowLong(IntPtr hwnd, int index);    [DllImport("user32.dll")]    extern private static int SetWindowLong(IntPtr hwnd, int index, int value);    internal static void HideMinimizeAndMaximizeButtons(this Window window)    {        IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;        var currentStyle = GetWindowLong(hwnd, GWL_STYLE);        SetWindowLong(hwnd, GWL_STYLE, (currentStyle & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX));    }}

The only other thing to remember is that for some reason this doesn't work from a window's constructor. I got around that by chucking this into the constructor:

this.SourceInitialized += (x, y) =>{    this.HideMinimizeAndMaximizeButtons();};

Hope this helps!


One way is to set your ResizeMode="NoResize". It will behave like this.enter image description here

I hope this helps!


Don't know if this works for your req. visually.. This is

<Window x:Class="DataBinding.MyWindow" ...Title="MyWindow" Height="300" Width="300"     WindowStyle="ToolWindow" ResizeMode="CanResizeWithGrip">