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 :

Style ne marche pas sur control Winform?


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 Style ne marche pas sur control Winform?
    Bonjour,

    Cette question est la suivante d'une que j'avais posé à propos du style des contextmenus.

    Maintenant mon style de ContextMenu et Menu Item """"""fonctionne""""""""".


    Le probleme est le suivant:
    J'affiche mon menu lorsqu'on clic sur un NotifyIcon, qui est un control windows form.
    Lorsque je lance mon application et que je clic sur mon icone pour afficher mon menu, le style du contextmenu ne s affiche pas alors que celui des MenuItems oui.
    Un autre cas particulier, si j affiche mon menu en premier à partir dun controle wpf, et qu ensuite je clic sur mon icone (control winform) cette fois ci le menu s affiche correctement.


    J'ai attaché ci dessous le projet pour vous montrer.

    Pièce jointe 34672


    Cordialement

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bizarre...
    Je pense pas que ce soit lié au fait que la NotifyIcon soit un contrôle Windows Forms, vu que c'est pas sur la NotifyIcon que tu appliques le style
    D'ailleurs, si au lieu de définir le menu comme ContextMenu de la fenêtre, je l'affiche manuellement, ça fait la même chose :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                //this.ContextMenu = cm;
     
                this.MouseDown += new MouseButtonEventHandler(Window1_MouseDown);
     
    ...
     
            void Window1_MouseDown(object sender, MouseButtonEventArgs e)
            {
                cm.Placement = System.Windows.Controls.Primitives.PlacementMode.Mouse;
                cm.IsOpen = true;
            }

    Donc je pense qu'il y a un autre truc à faire pour l'initialiser avant de l'afficher

  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 tomlev Voir le message
    Donc je pense qu'il y a un autre truc à faire pour l'initialiser avant de l'afficher
    Oui sans doute.
    Ce qui est bizarre c est que le style des menuitems fonctionnent...

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    tiens, je crois que j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            void notifyIcon_Click(object sender, EventArgs e)
            {
                cm.PlacementTarget = this;
                cm.Placement = System.Windows.Controls.Primitives.PlacementMode.Mouse;
                cm.IsOpen = true;
            }

  5. #5
    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 tomlev Voir le message
    tiens, je crois que j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            void notifyIcon_Click(object sender, EventArgs e)
            {
                cm.PlacementTarget = this;
                cm.Placement = System.Windows.Controls.Primitives.PlacementMode.Mouse;
                cm.IsOpen = true;
            }
    Je ne peux tester que ce soir, mais si tu as trouvé, merci énormement, ca fait longtemps que je cherche


  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 tomlev Voir le message
    tiens, je crois que j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            void notifyIcon_Click(object sender, EventArgs e)
            {
                cm.PlacementTarget = this;
                cm.Placement = System.Windows.Controls.Primitives.PlacementMode.Mouse;
                cm.IsOpen = true;
            }

    Salut,


    Je viens de me rendre compte que ceci ne marche pas lorsque la fenetre (this) est "Hidden".
    C'est à dire que pour que le menu s'affiche la fenetre doit etre ouverte.

  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
    Il y a bien un contournement :
    Plutôt que de mettre la visibilité de la fenêtre à Hidden, tu peux faire en sorte que ta fenêtre ne soit pas visible en jouant sur sa transparence, mettre les bords non-visibles et ne pas l'afficher dans la barre des taches :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Window ...
      WindowStyle="None" 
      AllowsTransparency="True"
      Opacity="0"
      ShowInTaskbar="False"
      >
     
    </Window>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. keybd_event ne marche pas sur un jeu !
    Par seal3 dans le forum Windows
    Réponses: 5
    Dernier message: 24/03/2006, 16h28
  2. [VBA-E] mon code ne marche pas sur un autre PC
    Par yannph dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2006, 21h03
  3. reload.js ne marche pas sur apache
    Par Leishmaniose dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 19/08/2005, 15h36
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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