在WPF Windows 中隱藏關閉按鈕
在WPF 應用程式中,建立模式對話框通常涉及隱藏關閉按鈕,同時保留標題欄。雖然 WPF 缺乏用於此特定目的的內建屬性,但可以使用 P/Invoke 和事件處理的組合來隱藏關閉按鈕。
要隱藏關閉按鈕,請先加入必要的聲明:
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);
這將隱藏關閉按鈕以及視窗圖示和系統選單。
重要注意事項
請注意,雖然此方法隱藏了關閉按鈕,但它不會阻止用戶關閉通過其他方式打開窗口,例如按Alt F4 或從工作列關閉應用程式。
要完全防止在滿足特定條件之前關閉窗口,需要建議重寫 OnClosing 事件並將 Cancel 設為 true。這可以與 P/Invoke 技術結合起來,提供停用視窗關閉的完整解決方案。
以上是如何在 WPF 視窗中隱藏關閉按鈕,同時仍保留的詳細內容。更多資訊請關注PHP中文網其他相關文章!