Masquer le bouton de fermeture dans la fenêtre Wpf
Dans la boîte de dialogue modale WPF, nous souhaitons parfois masquer le bouton de fermeture en haut de la fenêtre, mais gardez toujours la barre de titre. Toutefois, aucune des propriétés ResizeMode, WindowState et WindowStyle existantes ne satisfait aux deux exigences. Voici une solution à ce problème en utilisant P/Invoke.
Tout d'abord, ajoutez la déclaration suivante dans la classe 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);
Ensuite, mettez le code suivant dans l'événement Loaded de la fenêtre :
var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
Exécutez ce qui précède code Après cela, le bouton de fermeture sera masqué. Notez que cela masque uniquement le bouton, la touche de raccourci pour fermer la fenêtre (Alt F4) fonctionne toujours. Si vous devez empêcher l'utilisateur de fermer la fenêtre, vous pouvez utiliser la méthode proposée par Gabe pour remplacer l'événement OnClosing et définir Cancel sur true.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!