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

Silverlight Discussion :

Pb Tooltip dynamique


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut Pb Tooltip dynamique
    Bonjour a tous,

    Je realise une petite application en silverlight 2.0 avec du C#, et jai besoin sur un control de parfois modifier son tooltip.

    En fait mon application est une sorte de gestion d'emploi du temps et mes control sont en fait dérivé de la classe bouton. Je voudrez pouvoir ajouter des tooltip permettant a l'utilisateur de rajouter des commentaires sur ses creneaux horaire.

    mon control :
    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
    25
    26
    27
    28
    <UserControl.Resources>
    		<Storyboard x:Name="Sb_Click">
    			<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
    				<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#7A000000"/>
    			</ColorAnimationUsingKeyFrames>
    		</Storyboard>
    		<Storyboard x:Name="Sb_Click_Copy1">
    			<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
    				<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#00000000"/>
    			</ColorAnimationUsingKeyFrames>
    		</Storyboard>
    	</UserControl.Resources>
        <ToolTipService.ToolTip>
            <TextBlock x:Name="myTip" Text="text"/>
        </ToolTipService.ToolTip>
        <Canvas x:Name="LayoutRoot" Width="134" Height="34">
    		<Canvas.Background>
    			<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    				<GradientStop Color="#FF000000"/>
    				<GradientStop Color="#FFFFFFFF" Offset="1"/>
    			</LinearGradientBrush>
    		</Canvas.Background>
    		<Button Height="34" Width="134" Content="" x:Name="Bt_Calendrier"/>
            <TextBlock Height="18"  Width="134" Canvas.Top="8" Text="_ _ _ _ _" TextWrapping="Wrap" x:Name="Legende" FontSize="12" FontWeight="Bold" FontFamily="Portable User Interface" TextAlignment="Center"/>
     
            <Rectangle Height="34" Width="134" Fill="#00000000" Stroke="#FF000000" x:Name="rectangle"/>
    	</Canvas>
    </UserControl>

    et mon code C# pour modifier le tooltip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeBouton.myTip.Text = "Mon commentaire";

    Le code ne plante pas mais a chaque fois ma page se retrouve toute blanche, il n'y a plus aucun composants je ne comprend vraiment pas.

    Merci d'avance, Cordialement Mozo

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Essaye avec

    ToolTipService.SetToolTip(LeBouton, "Texte");

  3. #3
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Merci a toi Skyounet

    Je pense que le problème venais de la façon dont je récupérais mon bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BoutonCalendrier LeBouton = (BoutonCalendrier)sender;
    LeBouton.myTip.Text = "Mon commentaire";
    Maintenant je procede comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (int i = 0; i < MonBlock.Duree; i++)
                {
     
                    long LeJour = MonBlock.Jour;
     
                    long position = MonBlock.Debut + i;
                    string NomBouton = "b" + position.ToString() + LeJour.ToString();
                    BoutonCalendrier o = (BoutonCalendrier)GrilleCalendrier.FindName(NomBouton);
                    ToolTipService.SetToolTip(o, MonBlock.Commentaire); 
     
     
                }
    Les noms que j'ai donné a mes boutons définissent leurs positions (jour = colonne, position = ligne)sur le calendrier, de cette manière j'arrive bien a le récupérer.

    La même chose se produit toujours cad un écran tous blanc juste après être passer sur ce bout de code. Cependant lorsque je met ma valeur jour en dure
    cela fonctionne lorsque le jour n'est pas réellement la colonne sur laquelle j'ai cliquer. Autre exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (int i = 0; i < MonBlock.Duree; i++)
                {
    
                    long LeJour = MonBlock.Jour +1;
                    
                    long position = MonBlock.Debut + i;
                    string NomBouton = "b" + position.ToString() + LeJour.ToString();
                    BoutonCalendrier o = (BoutonCalendrier)GrilleCalendrier.FindName(NomBouton);
                    ToolTipService.SetToolTip(o, MonBlock.Commentaire); 
                    
                
                }
    ce code fonctionne très bien a l'exception que mes tooltips sont affichés sur la colonne d'à coté...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (int i = 0; i < MonBlock.Duree; i++)
                {
    
                    long LeJour = 2;
                    
                    long position = MonBlock.Debut + i;
                    string NomBouton = "b" + position.ToString() + LeJour.ToString();
                    BoutonCalendrier o = (BoutonCalendrier)GrilleCalendrier.FindName(NomBouton);
                    ToolTipService.SetToolTip(o, MonBlock.Commentaire); 
                    
                
                }
    Avec la valeur de la colonne en dure, si je clique directement sur cette colonne, la numéro 2, sa plante(page blanche).
    Si je clique sur une autre colonne, cela fonctionne (en m'affichant les tooltips sur la colonne n°2 bien sur).
    Ce qui est étonnant c'est que si après avoir cliquer sur la colonne 1, je vais cliquer sur la colonne 2, et bien tous fonctionne parfaitement...
    J'ai donc essayer d'initialiser un tooltip avant le code pour reproduire cela mais sa ne fonctionne pas.

    Je ne comprend vraiment pas...
    Je ne sais pas si je me suis bien fait comprendre... Enfin si quelqu'un a une idée je suis preneur.

    Cordialement Mozo

  4. #4
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Bon j'ai réussi a contourner le problème en initialisant tous mes tooltip de tous mes boutons dans le constructeur de ma page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public Calendrier()
    		{
    			InitializeComponent();
                for (int i = 1; i < 5; i++)
                {
                    for (int j = 0; j < 9; j++)
                    {
                        string NomBouton = "b" + j.ToString() + i.ToString();
                        BoutonCalendrier o = (BoutonCalendrier)GrilleCalendrier.FindName(NomBouton);
                        ToolTipService.SetToolTip(o, "");
                    }
                }
    		}
    Je comprend pas trop se que sa change mais sa marche...

    Cordialement Mozo

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

Discussions similaires

  1. Tree, Afficher un tooltip dynamique (request JSON) ?
    Par Bruno13 dans le forum Ext JS / Sencha
    Réponses: 4
    Dernier message: 05/07/2014, 11h47
  2. [Débutant] Tooltip dynamique sur un Textblock
    Par Towandaa dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/10/2012, 11h41
  3. Tooltip dynamique d'image
    Par Norin dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/02/2012, 19h15
  4. Template d'un ToolTip Dynamique
    Par Masamunai dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 19/06/2011, 15h24
  5. modifier dynamiquement un JCombo + tooltip mis en forme
    Par tommy :-) dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 25/03/2006, 15h36

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