У меня есть TextBlock с всплывающей подсказкой, которая отображает те же данные, в случае усечения. Однако если свойство, к которому привязан TextBlock.Text и текст всплывающей подсказки, пустое (строка нулевой или нулевой длины), всплывающая подсказка отображается в виде небольшого пустого поля. Есть ли способ скрыть это и не показывать подсказку в этом случае?
<TextBlock Text="{Binding Text}">
<util:ToolTipManager.ToolTip>
<TextBlock TextWrapping="Wrap" Text="{Binding Text}" />
</util:ToolTipManager.ToolTip>
</TextBlock>
Я попытался использовать StringToVisibilityConverter
, добавив Visibility="{Binding Text, Converter={StaticResource StringToVisConverter}}"
в TextBlock без какой-либо удачи.
Я также пытался реализовать ответ, данный Скрыть подсказку, если привязка равна нулю , но это кажется специфическим для их установки (или, по крайней мере, я не выяснил, как ее успешно адаптировать). *
(ToolTipManager
из http://www.codeproject.com/Articles/36078/Silverlight-2-0-How-to-use-a-DataBinding-with-the, используется для обеспечения привязки данных для всплывающей подсказки.)
Edit:
В ответ на комментарии вот 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);
}