[Résolu][WPF] Petit problème de template

Bonjour tout le monde (et bonne année),

j’ai un petit souci de template avec WPF. En effet j’ai une listbox sur lequel j’applique ce template :

<DataTemplate x:Key="ApplicationListItemStyle"> <StackPanel Orientation="Horizontal" Margin="15,10"> <Image Source="{Binding Path=LogoUri}" Margin="0 0 10 0" Width="32" Height="32"/> <TextBlock VerticalAlignment="Center" Text="{Binding Path=Nom}"/> </StackPanel> </DataTemplate>

Comme je voulais faire un petit effet au survol j’ai aussi fait ce control template :

[code]

<Border.RenderTransform>



</Border.RenderTransform>


<ControlTemplate.Triggers>



</ControlTemplate.Triggers>

	<SolidColorBrush x:Key="ApplicationListItemMouseOverBkg" Color="#B2B5F6FF" />[/code]

J’aurai souhaité mettre un Tooltip sur chaque item de la listbox, je me suis dit donc que dans le DataTemplate, j’allais faire ceci :

<DataTemplate x:Key="ApplicationListItemStyle"> <StackPanel Orientation="Horizontal" Margin="15,10"> <StackPanel.ToolTip> <TextBlock Text="{Binding Path=Description}" /> </StackPanel.ToolTip> <Image Source="{Binding Path=LogoUri}" Margin="0 0 10 0" Width="32" Height="32"/> <TextBlock VerticalAlignment="Center" Text="{Binding Path=Nom}"/> </StackPanel> </DataTemplate>

Mais à ma grande surprise, cela n’agissait que sur le text et l’image et non sur le StackPanel complet. Pour vérifier la taille de mon stackpanel, j’ai changé le backgroundcolor et voici ce que j’obtiens :

(voir pièce jointe)

En fait le tooltip agit bien sur tout mon stackpanel mais c’est mon stackpanel qui ne prend pas toute la place de ma listbox.

Sauriez-vous comment faire pour que le tooltip agisse sur toute la zone bleutée du rollover et non uniquement sur la zone orange du stackpanel ? faut-il que je modifie le control template ?

Merci !

La zone bleue correspond a la marge que tu as associe a ton StackPanel.
Le plus simple c’est de faire un border avec un background transparent (et pas null) autour de ton StackPanel, qui lui prendra toute la place, et de placer le tooltip sur ce Border.
Autre chose, sur ton ItemContainerStyle, oublie pas de mettre un Setter sur HorizontalContentAlignment et VerticalContentAlignment a Stretch.

Have fun

Ok, j’essaie ça ce soir, Merci beaucoup !

EDIT : Ca fonctionne nickel !!! Merci !!!

Une erreur de segmentation (souvent abrégé en segfault) ou de violation d’accès est une condition d’erreur particulière pouvant survenir pendant le fonctionnement de logiciels informatiques. Une erreur de segmentation se produit lorsqu’un programme tente d’accéder à un emplacement mémoire qu’il n’est pas autorisé à accéder, ou tente d’accéder à un emplacement mémoire d’une manière qui n’est pas autorisé (par exemple, en essayant d’écrire dans un emplacement en lecture seule, ou pour remplacer une partie du système d’exploitation).

La segmentation est une approche de gestion de la mémoire et la protection dans le système d’exploitation. Elle a été remplacée par la pagination pour les plus fins, mais une grande partie de la terminologie de la segmentation est encore utilisé, “Segmentation fault” est un exemple. Certains systèmes d’exploitation ont encore la segmentation à un niveau logique même si la pagination est utilisée comme la principale politique de gestion de mémoire.

c’etait vraiment tres interessant

[quote=“Alanmark, post:4, topic: 50653”]Une erreur de segmentation (souvent abrégé en segfault) ou de violation d’accès est une condition d’erreur particulière pouvant survenir pendant le fonctionnement de logiciels informatiques. Une erreur de segmentation se produit lorsqu’un programme tente d’accéder à un emplacement mémoire qu’il n’est pas autorisé à accéder, ou tente d’accéder à un emplacement mémoire d’une manière qui n’est pas autorisé (par exemple, en essayant d’écrire dans un emplacement en lecture seule, ou pour remplacer une partie du système d’exploitation).

La segmentation est une approche de gestion de la mémoire et la protection dans le système d’exploitation. Elle a été remplacée par la pagination pour les plus fins, mais une grande partie de la terminologie de la segmentation est encore utilisé, “Segmentation fault” est un exemple. Certains systèmes d’exploitation ont encore la segmentation à un niveau logique même si la pagination est utilisée comme la principale politique de gestion de mémoire.[/quote]
Heuuu ok? Le rapport avec la choucroutte?

Ben, il se reveille Alan Mark la non ?