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 :

[CustomControls Library] Comment implémenter une propriété ToolTip commune ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 [CustomControls Library] Comment implémenter une propriété ToolTip commune ?
    Bonjour à toutes et tous

    J'ai étudié attentivement l'article de Thomas Lebrun ( Morpheus mon parrain), ainsi que la doc MSDN et également une foultitude d'articles sur le Web. Et pourtant je merdoie lamentablement depuis une semaine sur un apparent simplissime problème.
    Dans le fichier Generic.xaml j'ai, par exemple, le code suivant:
    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
     
     <Style TargetType="ToolTip" BasedOn="{x:Type ToolTip}">
      <Setter Property="Template">
       <Setter.Value>
        <ControlTemplate TargetType="ToolTip">
         <Canvas Name="Canvas" Height="21" Width="210">
          <Rectangle Name="Rectangle" Stretch="Fill"
               Opacity="0.8" RadiusX="20" RadiusY="20"
               Fill="{StaticResource ControlsBrush}"
               Stroke="{StaticResource BaseColor}"
                />
          <TextBlock Name="Texte" Margin="3"
               Foreground="{StaticResource FontColor}"
               HorizontalAlignment="Left" VerticalAlignment="Top" />
         </Canvas>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
     </Style>
    C'est oK à la génération du projet mais à l'exécution, les ToolTips prennent l'apparence par défaut de Windows XP. Pourriez-vous me guider pour déjà résoudre ce problème d'apparence ? Merci

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Pourquoi utilises-tu le BasedOn ?
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    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
    Citation Envoyé par The_badger_man Voir le message
    Pourquoi utilises-tu le BasedOn ?
    En une semaine j'ai eu le temps d'essayer pas mal de bouts de code .
    Puisqu'il faut expliquer, j'ai pris un exemple de code parmi d'autres. J'ai donc essayer également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Style TargetType="ToolTip"> 
      <Setter Property="Template">
       <Setter.Value>
        <ControlTemplate TargetType="ToolTip">
         <...>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
     </Style>
    La réponse attendue est donc celle à la question
    Pourriez-vous me guider pour déjà résoudre ce problème d'apparence ?
    . N'allez pas SVP à la pêche au gros

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Ton fichier Generic.xaml est-il bien dans le dossier Themes ?

  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
    Par défaut
    Salut,

    Si j'ai bien compris, tu crées un CustomControl pour redéfinir un ToolTip perso.

    Il faut que le fichier "Generic.xaml" soit dans un dossier nommé "Themes" ?

    Dans le constructeur de la classe du contrôle (que je nomme "CustomToolTip"), il faut ajouter :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomToolTip), new FrameworkPropertyMetadata(typeof(CustomToolTip)));

    Et ton code xml, il faut plus l'entamer dans ce style là :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Style TargetType="{x:Type local:CustomToolTip}"> 
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:CustomToolTip}">
     
                </ControlTemplate>
            </Setter.Value>
        </Setter>
     </Style>

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Moi j'avais compris que tu cherchais simplement à changer le style de tous les Tooltip de ton application (donc pas forcément à créer un nouveau type de tooltip).

    Dans ce cas, tu peux faire 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
    <Style TargetType="ToolTip">
      <Setter Property="Template">
       <Setter.Value>
        <ControlTemplate TargetType="ToolTip">
         <Grid>
          <Rectangle Name="Rectangle" Stretch="Fill"
               Opacity="0.8" RadiusX="20" RadiusY="20"
               Fill="Blue"
               Stroke="Green"
                />
          <TextBlock Margin="3" Text="toto"
               Foreground="Red"
               HorizontalAlignment="Left" VerticalAlignment="Top" />
         </Grid>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
     </Style>
    Soit tu mets ce style dans la fenêtre où tu veux l'appliquer, ou si c'est pour toute ton appli, dans Themes/Generic.xaml.

  7. #7
    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
    Bon je répond à tout le monde !

    En résumé, je sais très exactement comment implémenter une librairie de Custom Controls.
    J'ai déjà un Window perso avec skin perso et des Buttons perso et ... etc.. Donc j'ai bien un dossier Themes comprenant un Generic.xaml et bien d'autres ResourcesDictionaries.
    J'ai également essayé toutes vos propositions :
    * Que ce soit le remplacement du Canvas par un Grid(désolé Jérem22)
    * Ainsi que le développement d'un CustomToolTip (respect à l'illustre binoo)
    Le souci doit être ailleurs (comme la vérité ). Please une illumination SVP

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/07/2014, 18h41
  2. [VB.Net 2.0] Comment implémenter une requête Delete ?
    Par estelledany dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/07/2006, 12h39
  3. [VB]Comment créer une propriété pour un activex
    Par darksantor dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/06/2006, 21h17
  4. Réponses: 7
    Dernier message: 06/04/2006, 18h17
  5. Réponses: 17
    Dernier message: 04/04/2005, 17h50

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