Maison > développement back-end > C++ > Comment masquer le bouton de fermeture dans une fenêtre WPF tout en conservant le

Comment masquer le bouton de fermeture dans une fenêtre WPF tout en conservant le

Patricia Arquette
Libérer: 2025-01-02 16:23:38
original
965 Les gens l'ont consulté

How to Hide the Close Button in a WPF Window While Keeping the

Masquer le bouton de fermeture dans les fenêtres WPF

Dans WPF, la création de boîtes de dialogue modales nécessite une fenêtre sans bouton de fermeture tout en conservant une barre de titre visible . Malgré l'exploration de propriétés telles que ResizeMode, WindowState et WindowStyle, aucune d'entre elles ne répond à ce besoin spécifique.

Pour résoudre ce problème, vous pouvez utiliser P/Invoke pour manipuler le style de la fenêtre et obtenir le comportement souhaité. Voici comment procéder :

  1. Ajoutez les déclarations suivantes à votre 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);
    Copier après la connexion
  2. Dans l'événement Loaded de la fenêtre, incluez ceci code :

    var hwnd = new WindowInteropHelper(this).Handle;
    SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
    Copier après la connexion

En exécutant ce code, vous réussirez à masquer le bouton de fermeture de la barre de titre, garantissant une expérience de dialogue modale plus intuitive.

Considérations importantes :

Bien que cette solution masque visuellement le bouton de fermeture, elle n'empêche pas l'utilisateur de fermer la fenêtre à l'aide de raccourcis clavier (par exemple, Alt F4) ou via la barre des tâches. Pour éviter la fermeture prématurée de la fenêtre, envisagez de remplacer l'événement OnClosing et de 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal