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 :

[ToolTip] Comment le masquer sur les contrôles enfants ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 : 43
    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
    Par défaut [ToolTip] Comment le masquer sur les contrôles enfants ?
    Y a-t-il un moyen de ne pas afficher sur les contrôles enfants le ToolTip du contrôle parent ? En l'occurrence, je mets un ToolTip sur un TabItem, mais je voudrais qu'il ne s'affiche que sur l'en-tête de l'onglet, pas sur le contenu :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <TabItem ToolTip="Clients">
        <ListView ItemsSource="{Binding Clients}"/>
    </TabItem>
    Dans l'exemple ci-dessous, le tooltip s'affiche aussi sur la ListView, ce que je ne veux pas. J'ai essayé de forcer la valeur du ToolTip sur la ListView, sans résultat :
    - "{x:Null}" : le ToolTip du parent est affiché
    - "{x:Static DependencyProperty.UnsetValue}" : le ToolTip du parent est affiché
    - "" : un ToolTip vide est affiché (ce qui est encore plus moche ...)

    Des idées ?

    EDIT: j'ai aussi essayé ToolTipService.IsEnabled="False", sans succès...

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Bonjour tomlev

    A vue de nez, çà sent la situation d'évènements de la classe de base qu'on ne peut gerer directement.
    Ce n'est qu'une intuition sans plus.
    Si jamais elle se révèle juste, dans ce cas il semblerait que tu ne puisses atteindre ton objectif qu'en implémentant tes propres Controls afin d'agir sur les méthodes Protected.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Regarde ici, ca devrait correspondre à tes besoins: http://social.msdn.microsoft.com/for...6-08b9fb4f15eb

  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 : 43
    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
    Par défaut
    Merci pour vos réponses

    Citation Envoyé par neguib Voir le message
    A vue de nez, çà sent la situation d'évènements de la classe de base qu'on ne peut gerer directement.
    Ce n'est qu'une intuition sans plus.
    Si jamais elle se révèle juste, dans ce cas il semblerait que tu ne puisses atteindre ton objectif qu'en implémentant tes propres Controls afin d'agir sur les méthodes Protected.
    Justement, en fait j'ai parlé d'une ListView pour simplifier, mais c'est un contrôle hérité de ListView. J'ai essayé d'overrider les OnMouseEnter/OnMouseLeave/OnMouseMove en mettant juste e.Handled = true, mais ça n'a rien changé

    Citation Envoyé par Thomas Lebrun Voir le message
    Regarde ici, ca devrait correspondre à tes besoins: http://social.msdn.microsoft.com/for...6-08b9fb4f15eb
    Oui, j'étais tombé sur ce post hier soir, mais il était un peu tard pour essayer . Je vais tester ça dès que j'ai un moment à moi.
    Par contre je ne suis pas certain que ça convienne à ma situation, car certains éléments de la ListView vont afficher un ToolTip, et cette solution désactive les tooltips de tous les enfants logiques...

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Par contre je ne suis pas certain que ça convienne à ma situation, car certains éléments de la ListView vont afficher un ToolTip, et cette solution désactive les tooltips de tous les enfants logiques...
    Oui mais dans le code, tu peux éventuellement le réactiver:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static readonly DependencyProperty ToolTipEnabledProperty = DependencyProperty.RegisterAttached(        "IsToolTipEnabled",        typeof(Boolean),        typeof(ToolTipBehavior),        new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.Inherits, (sender, e) =>         {            FrameworkElement element = sender as FrameworkElement;            if (element != null)            {                element.SetValue(ToolTipService.IsEnabledProperty, e.NewValue);            }        }));

  6. #6
    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 : 43
    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
    Par défaut
    Bon, en fait le ToolTipBehavior du lien que tu m'as donné, ça désactive en effet les ToolTip de l'élément auquel c'est appliqué et de ses enfants, mais ça n'empêche pas le contrôle parent d'afficher son tooltip sur le contenu... donc inutile dans mon cas.
    Enfin bon, c'est pas trop grave non plus comme problème... je laisse de côté pour l'instant, à moins qu'il y ait d'autres idées

    En fait, je réalise qu'il y avait un moyen beaucoup (beaucoup) plus simple... au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <TabItem ToolTip="Clients">
    <TabItem.Header>
    <Image Source="Resources/Clients.png"/>
       </TabItem.Header>
       <ListView ItemsSource="{Binding Clients}"/>
    </TabItem>
    Je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <TabItem>
      <TabItem.Header>
        <Image Source="Resources/Clients.png" ToolTip="Clients"/>
      </TabItem.Header>
      <ListView ItemsSource="{Binding Clients}"/>
    </TabItem>

    Et là, plus de problème, puisque la ListView n'est pas un descendant du Header...

    Pourquoi faire simple quand on peut faire compliqué

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

Discussions similaires

  1. Problème de message de sécurité sur les contrôles ActiveX
    Par chris67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/01/2010, 10h39
  2. Réponses: 2
    Dernier message: 18/07/2008, 14h43
  3. Réponses: 8
    Dernier message: 12/07/2008, 12h29
  4. Dessin sur les contrôles avec VB6
    Par rxjmo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/12/2007, 15h23
  5. [win32] precision sur les hwnd enfants
    Par NiamorH dans le forum Windows
    Réponses: 1
    Dernier message: 05/06/2007, 14h33

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