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頁面中 ...