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 :

Modification automatique d'une propriété d'un control ayant un tooltip


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut Modification automatique d'une propriété d'un control ayant un tooltip
    Bonjour,

    Dans le cadre d'une application professionnelle, j'aimerais changer le curseur (Cursors.Help) pour tous les controls ayant un tooltip.
    Compte tenu qu'il y a plusieurs développeurs sur l'application, et qu'une multitude de controls (présentes et futures) peuvent définir cette propriété, j'aimerais ne pas définir un style pour chaque control définissant un ToolTip, ni un style nommé à appeler dans le contrôle définissant le ToolTip (ça serait lourd et on pourrait oublier les prochaines !).

    Du coup, j'avais imaginé de créer un style avec TargetType="{x:Type ToolTip}" et modifier la propriété du control parent (de type FrameworkElement mais qu'on ne connait pas le type réel), mais je ne vois pas comment faire.

    Une idée?

    Merci

  2. #2
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    IMHO ça ne va pas être aussi trivial.

    Il va te falloir un peu de code procédural pour parcourir l'arbre visuel et tester la présence du tooltip et le cas échéant changer le curseur.
    Il faudrait aussi que ça tienne compte des controls ajoutés dynamiquement, typiquement ceux générés par les templates des ItemsControls, et ça c'est pas évident...
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Donc plutôt rester sur ma 1e idée et ajouter au fur et à mesure chaque classe les utilisants?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <Style TargetType="{x:Type FrameworkElement}" x:Key="ToolTipCursoStyle">
        <Setter Property="Cursor" Value="Help" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=ToolTip, RelativeSource={RelativeSource Self}}" Value="{x:Null}">
                <Setter Property="Cursor" Value="Arrow" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource ToolTipCursoStyle}" />
    <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource ToolTipCursoStyle}" />
    <Style TargetType="{x:Type MyCustomClass}" BasedOn="{StaticResource ToolTipCursoStyle}" />
    ...

  4. #4
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Oui ça semble le plus simple même si un peu fastidieux.

    Par contre si tu as déjà d'autres styles qui héritent les uns des autres tu ne pourras pas isoler de façon aussi propre ton comportement et il faudra sûrement le copier au niveau des styles de base.
    Ce n'est pas grave, juste un peu de duplication, il faudra juste bien la documenter au cas où plus tard tu décides de désactiver ou modifier ce comportement.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Citation Envoyé par Pragmateek Voir le message
    Oui ça semble le plus simple même si un peu fastidieux.

    Par contre si tu as déjà d'autres styles qui héritent les uns des autres tu ne pourras pas isoler de façon aussi propre ton comportement et il faudra sûrement le copier au niveau des styles de base.
    Ce n'est pas grave, juste un peu de duplication, il faudra juste bien la documenter au cas où plus tard tu décides de désactiver ou modifier ce comportement.
    En effet, je viens de voir que je ne peux pas définir des bouts de style à plusieurs endroits pour chaque control (contrairement au CSS par ex). Vu que les dictionnaires sont déjà centralisés par control, je vais juste avoir besoin d'ajouter un BaseOn sur mon style pour le ToolTip dans tous les controls souhaités. Pas idéal, mais ça restera quand même moins lourd que d'utiliser les styles à chaque fois

    Merci pour ton retour

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

Discussions similaires

  1. Modification automatique de la propriété 'string' d'un pushbutton
    Par ArnaudFu13 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 01/11/2012, 20h32
  2. [SP-2007] date de modification automatique pour une seule colonne
    Par Bois990 dans le forum SharePoint
    Réponses: 5
    Dernier message: 15/03/2012, 15h42
  3. Réponses: 8
    Dernier message: 17/01/2012, 16h48
  4. Récupérer une propriété d'un control dans une DynamicResource
    Par Eggiz dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 04/05/2009, 14h48
  5. [C#]liste de choix dans une propriété d'un user control
    Par LeDeveloppeurDotNet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/10/2005, 12h41

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