我正在关注Telerik指南,以便在WPF GridView列标题上显示工具提示。任务是创建一个与列标题具有相同文本的工具提示。
在generic.xml中有这种风格:
<Style TargetType="telerik:GridViewHeaderCell">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content}" />
</Style>
当鼠标悬停在列标题上时,这确实有效并显示工具提示,但实际的标题正在被清除。
我想知道为什么会发生这种情况以及如何解决这个问题? GridViewHeaderCell继承自ContentControl。
答案 0 :(得分:1)
我最后添加了一个转换器,因为“Content”值似乎是一个TextBlock:
public class TooltipObject : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
{
return ((TextBlock)value).Text;
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
,样式如下:
<utils:TooltipObject x:Key="tooltip" />
...
<Style TargetType="telerik:GridViewHeaderCell">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content, Mode=TwoWay, Converter={StaticResource tooltip}}" />
</Style>