【发布时间】:2011-11-12 16:38:41
【问题描述】:
我有一个带有工具提示的 TextBlock,它显示相同的数据,以防被截断。但是,如果 TextBlock.Text 和工具提示的文本绑定到的属性为空(null 或零长度字符串),则工具提示将显示为一个小的空框。在这种情况下,有没有办法隐藏它并且不显示任何工具提示?
<TextBlock Text="{Binding Text}">
<util:ToolTipManager.ToolTip>
<TextBlock TextWrapping="Wrap" Text="{Binding Text}" />
</util:ToolTipManager.ToolTip>
</TextBlock>
我尝试通过将Visibility="{Binding Text, Converter={StaticResource StringToVisConverter}}" 添加到TextBlock 来使用StringToVisibilityConverter,但没有任何运气。
我也尝试实现Hide tooltip if binding is null 给出的答案,但这似乎特定于他们的设置(或者至少我还没有弄清楚如何成功地调整它)。
(ToolTipManager来自http://www.codeproject.com/Articles/36078/Silverlight-2-0-How-to-use-a-DataBinding-with-the,用于为tooltip提供数据绑定。)
编辑:
针对cmets,这是我为上述相关问题尝试的XAML:
<TextBlock Text="{Binding PointName}">
<local:ToolTipManager.ToolTip>
<Grid>
<TextBlock TextWrapping="Wrap" Text="{Binding PointName}"/>
<Rectangle Fill="Transparent" Visibility="{Binding PointName, Converter={StaticResource StringToVisConverter}}" />
</Grid>
</local:ToolTipManager.ToolTip>
</TextBlock>
这是我的字符串到可见性转换器代码:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string visible = (string)value;
return (!String.IsNullOrWhiteSpace(visible) ? Visibility.Visible : Visibility.Collapsed);
}
【问题讨论】:
-
你能告诉我你试图从问题stackoverflow.com/questions/5910994/…实现的xaml代码
-
转换器必须适合您的情况。你能显示转换器的代码吗,可能你在那里遗漏了什么?
-
我已更新问题以回答您的 cmets。
标签: c# silverlight silverlight-4.0