我想使文本块工具提示有条件地可见.
我将工具提示定义为:
<TextBlock>
<TextBlock.ToolTip>
<Grid>...</Grid>
</TextBlock.ToolTip>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
可见性属性在该定义中的位置?它似乎不喜欢我的任何猜测.
有一些建议只是使用网格可见性.这种方法的问题是使网格不可见仍然会显示空的工具提示框..这就是我试图控制工具提示可见性的原因.
Cri*_*spy 13
试试这个.它不会留下空框架.
<TextBlock Text="test">
<TextBlock.ToolTip>
<ToolTip Visibility="Visible">
Hello
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
<TextBlock Text="test">
<TextBlock.ToolTip>
<ToolTip Visibility="Hidden">
Hello
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
带有工具提示的 TextBlock:
<TextBlock Text="{Binding Path=TextBoxText}">
<TextBlock.ToolTip>
<ToolTip Visibility="{Binding Path=ToolTipText, Converter={StaticResource StringToVisibilityConverter}}">
<Grid><TextBlock Text="{Binding Path=ToolTipText}" /></Grid>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
要绑定到 TextBlock 的对象:
public class TextBoxBindingObject
{
public string TextBoxText{ get; set; }
public string ToolTipText{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
转换器:
[ValueConversion(typeof(string), typeof(Visibility))]
public class StringToVisibilityConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(value is string)
{
var stringValue = value as string;
if(!String.IsNullOrEmpty(stringValue))
return Visibility.Visible;
}
return Visibility.Hidden;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10606 次 |
最近记录: |