WPF Windows で閉じるボタンを非表示にする
WPF でモーダル ダイアログを作成するには、表示されたタイトル バーを維持しながら、閉じるボタンのないウィンドウが必要です。 ResizeMode、WindowState、WindowStyle などのプロパティを調べても、この特定のニーズを満たすものはありません。
これに対処するには、P/Invoke を利用してウィンドウのスタイルを操作し、目的の動作を実現します。その方法は次のとおりです。
次の宣言を Window クラスに追加します。
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 に設定することを検討してください。
以上がWPF ウィンドウの閉じるボタンを非表示にしたままにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。