Masquer le bouton de fermeture dans Windows WPF
Question : Comment puis-je masquer le bouton de fermeture d'une fenêtre WPF tout en conservant une barre de titre normale ?
WPF ne dispose pas d'une option intégrée pour supprimer le bouton de fermeture du titre d'une fenêtre bar. Cependant, cela peut être réalisé en utilisant P/Invoke :
Code :
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); // In the Window's Loaded event var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
Ce code masque le bouton de fermeture, ainsi que l'icône de la fenêtre et le menu système.
Remarque : Cette approche masque uniquement le bouton. La fenêtre peut toujours être fermée à l'aide de raccourcis clavier ou en fermant l'application.
Pour empêcher la fenêtre de se fermer lorsqu'un thread en arrière-plan est en cours d'exécution, remplacez la méthode OnClosing et définissez Cancel sur true :
protected override void OnClosing(CancelEventArgs e) { e.Cancel = 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!