如何在WPF Windows 中隱藏關閉按鈕:P/Invoke 解決方案
在WPF 中,隱藏關閉按鈕可能是理想的選擇在模式對話方塊中,同時保留標題列。雖然內建 WPF 屬性不提供此功能,但利用 P/Invoke 提供了一種解決方法。
步驟1:宣告相關常數和DllImport 函數
開始將以下常數和DllImport 宣告新增至您的視窗class:
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);
第2 步:在Loaded事件中隱藏關閉按鈕
接下來,將此程式碼包含在Window 的Loaded 事件中:var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
預計結果:
預計結果:
預計結果:
執行這些步驟後,關閉按鈕將從標題列中消失,而標題列本身仍然可見。 重要提示:雖然隱藏了關閉按鈕,但使用者仍可使用鍵盤快速鍵或工作列關閉視窗。為了防止這種情況,請考慮重寫 OnClosing 事件並將 Cancel 設為 true,如另一個答案中所建議的。以上是如何使用 P/Invoke 隱藏 WPF 視窗中的關閉按鈕?的詳細內容。更多資訊請關注PHP中文網其他相關文章!