IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Window.Close() sur une fenetre fille ferme l'application


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Window.Close() sur une fenetre fille ferme l'application
    Bonjour à tous,

    Je fais mes premiers pas avec WPF et j'ai un problème étrange.

    J'ai une fenêtre WPF principale et j'en créé une nouvelle et l'affiche depuis le code avec un bête ShowDialog().

    Dans cette nouvelle fenêtre, si je fais un Close() ou si j'appuie sur la croix de cette fenêtre fille, toute l'application se ferme.

    Ok, donc j'essaie en faisant Hide() plutôt. Mais après avoir afficher ma nouvelle fenêtre puis en l'ayant caché, si je ferme ma fenêtre principale, le process ne quitte pas et reste en fond.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class Window1 : Window
    {
    <div style="margin-left:40px">public MaMethode()
    {
    <div style="margin-left:40px">Window2 w = new Window2(); // w n'a de portée que sur cette méthode
    w.ShowDialog();</div>}</div>}
    Si dans Window2 je fais this.Close() => toute l'application se ferme.
    Si dans Window2 je fais this.Hide() et que je fais ensuite Window1.Close() => le process continu de tourner.

    J'ai l'impression de ne pas saisir la façon dont WPF instancie les composants.

    Est-ce que je m'y prend mal pour afficher/fermer des fenêtres ?

    Merci d'avance pour cet éclaircissement.

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Lorsque tu fais un ShowDialog(), dans ta Window2 pense à mettre ceci avant le this.Close() (ou bien dans l'évènement Closing de ta Window2) :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DialogResult = true; // ou false selon ce que tu désires

    Oublies le Hide(), tu as pu le voir, cela ne tue pas la fenêtre mais la cache.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Merci pour cette réponse !

    Nouveau probème : Window2.DialogResult = true/false, suivi de Hide ou Close

    => l'application se ferme .

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Dans ton fichier App.xaml, la propriété ShutDownMode est positionné à quoi ?
    http://msdn.microsoft.com/fr-fr/libr...tdownmode.aspx

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    A sa valeur par défaut (OnLastWindowClose ?).

    J'ai essayé OnMainWindowClose, un Window2.Close() ferme l'application, tout comme un Window2.DialogResult = true/false.

    Le bon point, c'est que avec Window2.Hide(), l'application se ferme correctement sur un MainWindowClose (logique).

    Quelque chose m'échappe. Je n'aime pas trop savoir que des instances se trimbalent.

    Merci pour le coup de main.

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    alors là, je vois vraiment pas ce qui se passe....

Discussions similaires

  1. verifier qu'une fenetre fille est fermée
    Par kalyparker dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/02/2007, 16h39
  2. Réponses: 22
    Dernier message: 24/10/2006, 17h04
  3. [MFC] Maximiser à l'ouverture une fenetre fille !
    Par leskritiques dans le forum MFC
    Réponses: 15
    Dernier message: 28/04/2004, 08h50
  4. [MDI] Ouvrir immédiatement une fenetre fille
    Par phil56 dans le forum C++Builder
    Réponses: 8
    Dernier message: 12/03/2003, 14h27
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo