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 :

ContextMenu + une fenetre


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut ContextMenu + une fenetre
    Bonjours,



    J'ai actuellement un ContextMenu que j'ai importé de la classe Windows Forms.

    Je voudrais que lorsque l'on survole un élément de mon menu au lieu d'ouvrir un sous menu, ouvrir une fenetre qui soit situé à l'emplacement du menu et qui ne ferme pas le menu.



    Cela est il possible?

    Cordialement

  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,

    j'ai du mal à me représenter

    On a un menu sans sous menu (car remplacé par une "fenêtre")
    Le ContextMenu WinForm, lui, il intervient où ? C'est la fenêtre en question ?

  3. #3
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Citation Envoyé par binoo Voir le message
    Salut,

    j'ai du mal à me représenter

    On a un menu sans sous menu (car remplacé par une "fenêtre")
    Le ContextMenu WinForm, lui, il intervient où ? C'est la fenêtre en question ?
    Je vais recommencer.

    J'ai un menu (un ContextMenu) contenant different Item ("fermer","options","..").
    Je voudrais que lorsque l'on sélectionne "option" au lieu de m'afficher une sous menu, afficher une fenetre mais à la place du sous menu qu'il y a normalement.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Bah, sur le clic du MenuItem "Options", tu fais un :


  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
    Le problème est que le comportement du ContextMenu va faire qu'il va se fermer lorsque la fenêtre va s'ouvrir (car perte du Focus).

    Il y a bien la propriété StaysOpenOnClick sur le MenuItem, mais même avec ça, l'ouverture va faire enclencher la perte de Focus et va donc fermer le ContextMenu. Donc finalement, cette option n'est pas adapté... (d'autant plus que c'est sur le survol (MouseEnter) que tu veux le faire ).

    Personnellement je ne sais pas comment résoudre ce problème. Par contre, il est possible de le contourner en utilisant un userControl comme sousMenu au lieu d'une fenêtre. Mais ça ne répond peut-être plus à tes besoins...

  6. #6
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Citation Envoyé par binoo Voir le message
    Le problème est que le comportement du ContextMenu va faire qu'il va se fermer lorsque la fenêtre va s'ouvrir (car perte du Focus).

    Il y a bien la propriété StaysOpenOnClick sur le MenuItem, mais même avec ça, l'ouverture va faire enclencher la perte de Focus et va donc fermer le ContextMenu. Donc finalement, cette option n'est pas adapté... (d'autant plus que c'est sur le survol (MouseEnter) que tu veux le faire ).

    Personnellement je ne sais pas comment résoudre ce problème. Par contre, il est possible de le contourner en utilisant un userControl comme sousMenu au lieu d'une fenêtre. Mais ça ne répond peut-être plus à tes besoins...
    Comment puis je utiliser un user control comme sous menu?

  7. #7
    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
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        ContextMenu ctmenu = new ContextMenu();
        MenuItem miFichier = new MenuItem();
        MenuItem miOutils = new MenuItem();
        MenuItem miAide = new MenuItem();
     
     
        miFichier.Header = "Fichier";
        //miFichier.Click += new RoutedEventHandler( miFichier_Click );
        ctmenu.Items.Add( miFichier );
     
        miOutils.Header = "Outils";
        ctmenu.Items.Add( miOutils );
     
        miAide.Header = "Aide";
        ctmenu.Items.Add( miAide );
     
        UserControl1 uc1 = new UserControl1();
        MenuItem miAidebis = new MenuItem();
     
        miAidebis.Header = uc1;
        //miAidebis.StaysOpenOnClick = true;
        miAide.Items.Add( miAidebis );
     
        window1.ContextMenu = ctmenu;

  8. #8
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    En fait à la base j utilisais un ContextMenu de Windows Form.
    J'ai testé d'un faire un nouveau en wpf, mais je bute sur un autre probleme.


    Mon menu est affiché lorsque que l'on clic sur mon icone systray.
    Et la propriété ci dessous ne prend que les ContextMenu issue de WindowsForm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_notifyIcon.ContextMenuStrip

Discussions similaires

  1. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  2. [MDI] Ouvrir immédiatement une fenetre fille
    Par phil56 dans le forum C++Builder
    Réponses: 8
    Dernier message: 12/03/2003, 14h27
  3. [VB6] Dimension d'une fenetre extérieure
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/01/2003, 16h52
  4. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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