J'ai un TextBlock dans un contrôle de taille limitée. Si le texte est trop long pour tenir dans le contrôle, je voudrais montrer une info-bulle avec texte intégral. C'est un comportement classique que vous connaissez sûrement de nombreuses applications.Afficher l'info-bulle WPF si nécessaire
J'ai essayé d'utiliser un convertisseur pour convertir la largeur de TextBlock en visibilité de l'info-bulle.
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}">
<TextBlock.ToolTip>
<ToolTip
DataContext="{TemplateBinding Content}"
Visibility="{Binding Converter={StaticResource visConvert}}">
<TextBlock Text="{Binding Text}"></TextBlock>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
Le problème est que dans le convertisseur:
public object Convert(object value, ...
'valeur' est l'élément DataBound. Je voudrais que la "valeur" soit le TextBlock, pour observer sa largeur, et le comparer à la GridViewColumn.Width.
Est-ce que cela fonctionnera avec TextTrimming activé? Parce que le TextBlock ne prendra probablement pas plus d'espace que ce qui est disponible pour cela. – ygoe