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 :

problème avec création dynamique de popup


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 49
    Points : 28
    Points
    28
    Par défaut problème avec création dynamique de popup
    Salut à tous

    Voila je crée dynamiquement des popups que je positionne au dessous de chaque bouton d'une page lorsqu'il y en a.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    				var mybuttons = new List<Button>(this.GetUIElements<Button>());
    				for(int i = 0 ; i < mybuttons.Count  ; i++)
    				{
    					Popup mypopup = new Popup();
    					mypopup.Width = 25;					
    					mypopup.Height = 25;
    					mypopup.PlacementTarget = mybuttons[i];
    					mypopup.Placement = PlacementMode.Bottom;
    					mypopup.IsOpen = true;
    					mypopup.AllowsTransparency = true;
    					mypopup.StaysOpen = false;
    				}
    Le truc c'est que j'arrive à les faire s'ouvrir en gérant l'évènement "key_down" de la page sur laquelle se trouve les boutons, mais par contre impossible de fermer les popups sauf si je quitte l'application et reviens sur elle.

    L'autre truc auquel je m'attendais, c que les popups apparaissent bien au dessous de chaque bouton mais suffit que je bouge la fenêtre pour que rien ne vas plus et ce même si les popup ont une position relative.

    Quelqu'un ou quelqu'une à une idée ?

  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
    Citation Envoyé par Melianos
    L'autre truc auquel je m'attendais, c que les popups apparaissent bien au dessous de chaque bouton mais suffit que je bouge la fenêtre pour que rien ne vas plus et ce même si les popup ont une position relative.
    Et en ajoutant :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    ContextMenuService.SetPlacement( mybuttons[i], System.Windows.Controls.Primitives.PlacementMode.Bottom );
    après :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    mypopup.Placement = PlacementMode.Bottom;


    Pour l'autre problème, j'ai pas d'idée là comme ça...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    non désolé pour moi binoo ça marche po

  4. #4
    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
    Mais en fait ce problème est lié au premier, non ? Car quand tu déplaces ta fenêtre la popup est censée être fermé. C'est bien ça ?

  5. #5
    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
    Après une petite recherche, voici un post qui peut t'intéresser :
    http://forums.msdn.microsoft.com/en-...-9675e3cfb764/

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    Merci binoo, c'était presque ça mais ça m'a permis de trouver une solution toute bête qui fonctionne comme on en veut beaucoup :

    Je gère l'evt keydown de la fenêtre pour faire apparaitre les popups sur les boutons qu'elle contient. Je stocke ces popups dans une List<> et je mets un flag booléen à true pour dire qu'ils ont déjà été affichés une fois (donc que la List<> n'est pas vide, ça évite d'en créer en surplus)

    Pour les faire disparaitre, je gère l'evt keyup (même touche) de la fenêtre et le tour est joué (je vide la List<> au passage). Ce que je dois peut être faire aussi c'est m'assurer que tous les popup sont déconnectés de leur visual tree, chose que je dois encore investiguer un peu car je ne sais pas comment faire à première vue.

    Les deux problèmes qui reste à résoudre c que les popup flottent par déf et donc si jamais l'utilisateur à la mauvaise idée de maintenir la touche pressée et de bouger la fenêtre ça risque d'être pas très joli. D'autre part, si je réduis la taille de ma fenêtre et que des boutons sont hors du champ de vision (dans la partie cachée accessible via scrollbar), les popup s'affichent quand même dans le vide.....voila...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    Est ce qu'il existe une propriété qui permet de savoir si un contrôle est visible (visuellement parlant) et s'il ne l'est pas ? ça aurait du être le rôle de la propriété isVisible mais elle me retourne true que le contrôle soit affiché dans la partie visible d'une fenêtre ou qu'il soit dans la partie cachée où il faut scroller pour le chercher

Discussions similaires

  1. [MySQL] [BDD] Problème avec SELECT "dynamique"
    Par Vecine dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/03/2006, 11h11
  2. FAQ : problème avec création d'une requete en VBA
    Par Oluha dans le forum VBA Access
    Réponses: 14
    Dernier message: 14/02/2006, 12h05
  3. Problème avec tableaux dynamiques et procédure
    Par K20 dans le forum Langage
    Réponses: 11
    Dernier message: 06/01/2006, 20h51
  4. Problème avec création de fenêtre dynamique
    Par FredericB dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/09/2005, 17h21
  5. [Rave Report] problème de création dynamique
    Par Nivux dans le forum Rave
    Réponses: 2
    Dernier message: 24/05/2003, 00h07

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