wpf中,隱藏或去除window右上角的關閉按鈕

2021-07-04 15:49:11 字數 1232 閱讀 3849

window右上角的關閉按鈕,wpf沒有提供可操作的方法,所以借助user32.dll的api。

第一種方法:

只能disable 關閉按鈕。

[dllimport("user32.dll", charset = charset.unicode)]

private static extern intptr getsystemmenu(intptr hwnd, uint32 brevert);

[dllimport("user32.dll ", charset = charset.unicode)]

private static extern uint32 removemenu(intptr hmenu, uint32 nposition, uint32 wflags);

private const uint32 sc_close = 0x0000f060;

private const uint32 mf_bycommand = 0x00000000;

在window的loaded事件中新增:

var hwnd = new windowinterophelper(this).handle;  //獲取window的控制代碼

intptr hmenu = getsystemmenu(hwnd, 0);

removemenu(hmenu, sc_close, mf_bycommand);

第二種方法:

徹底去除關閉按鈕。

private const int gwl_style = -16;

private const int ws_sysmenu = 0x80000;

[dllimport("user32.dll", setlasterror = true)]

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

[dllimport("user32.dll")]

private static extern int setwindowlong(intptr hwnd, int nindex, int dwnewlong);

在window的loaded事件中新增:

var hwnd = new windowinterophelper(this).handle;

setwindowlong(hwnd, gwl_style, getwindowlong(hwnd, gwl_style) & ~ws_sysmenu);

WPF中控制項的顯示與隱藏

visibility表示 獲取或設定此元素的使用者介面可見性,並且是依賴項屬性 子屬性值 說明visible 表示顯示元素 collapsed 表示不顯示 隱藏 元素,並且不在布局中為它保留空間 hidden 表示不顯示 隱藏 元素,但是在布局中為元素保留空間 3 例 a a.count 1 vis...

WPF中控制項的顯示與隱藏

1.wpf中控制項的顯示與隱藏的屬性是 visibility,它有3個列舉值 visible,hidden 和 collapsed。其中visible為可見,而 hidden 和 collapsed 都是隱藏,唯一不同的是 hidden 只是隱藏,控制項還占用其大小空間 而collapsed隱藏不佔...

WPF中的視窗的生命週期 window

源 wpf中的視窗的生命週期 wpf中所有視窗的基型別都是system.windows.window。window通常用於sdi視窗和對話方塊。window在應用程式中除了乙個設計用於託管頂級內容的控制項外,就別無他物了。典型的,可以混合使用標記和 來定義乙個視窗。如下 在xaml頁 在cs頁面中 ...