WPF窗體禁用最大化按鈕

2022-07-31 09:42:15 字數 882 閱讀 6071

禁用wpf窗體的最大化按鈕可以使用windows api改變按鈕狀態的方法實現。

使用getwindowlong可以得到當前按鈕的狀態。使用setwindowlong可以設定按鈕的狀態。

使用setwindowpos進行介面的更新。

下面是這幾個api的宣告。

[dllimport("user32.dll", entrypoint = "getwindowlong")]

public static extern int getwindowlong(intptr hwnd, int nindex);

[dllimport("user32.dll", entrypoint = "setwindowlong")]

public static extern int setwindowlong(intptr hmenu, int nindex, int dwnewlong);

[dllimport("user32.dll")]

private static extern int setwindowpos(intptr hwnd, intptr hwndinsertafter, int x, int y, int cx, int cy, int uflags);

進行禁用後必須進行介面的重新整理,否則禁用狀態不會立即顯示在介面上。

private void disablemaxmizebox(bool isdisable)

else

setwindowlong(handle, gwl_style, nstyle);

setwindowpos(handle, intptr.zero, 0, 0, 0, 0, swp_nosize | swp_nomove | swp_framechanged);

}這個函式可以通過引數確定是否禁用。

禁用WPF窗體的最大化按鈕

出自 設定resizemode noresize 可去掉最大化和最小化按鈕 但沒法再拖曳改變窗體大小 ws clipsiblings 0x04000000 ws clipchildren 0x02000000 ws visible 0x10000000 ws disabled 0x08000000 ...

禁用WPF窗體的最大化按鈕

出自 設定resizemode noresize 可去掉最大化和最小化按鈕 但沒法再拖曳改變窗體大小 ws clipsiblings 0x04000000 ws clipchildren 0x02000000 ws visible 0x10000000 ws disabled 0x08000000 ...

WPF窗體去掉最大化,最小化按鈕。

dllimport user32.dll entrypoint getwindowlong public static extern int getwindowlong intptr hwnd,int nindex dllimport user32.dll entrypoint setwindowl...