如果没有文本,如何在 Windows Phone 8 中隐藏文本 block ?
<StackPanel>
<TextBlock Text="{Binding Name}" FontSize="22" Margin="0,5,10,0" TextWrapping="NoWrap" TextAlignment="Center" TextTrimming="WordEllipsis" />
<Image Source="{Binding Icon}" MaxWidth="36" MaxHeight="36" HorizontalAlignment="Left" Margin="10,-33,10,10" Stretch="Fill"/>
<TextBlock Text="{Binding Description}" FontSize="14" Margin="10,0,10,5" MaxHeight="60" TextWrapping="Wrap" TextTrimming="WordEllipsis" />
</StackPanel>
如果其中没有任何文本,我想隐藏文本 block “描述”。这怎么可能?
这是一个多“viewmodel”文本 block ,因此它没有名称并且不能单独检查,因为每 5 - 15 秒加载超过 20+ 的性能问题。
最佳答案
您将需要创建一个 IValueConverter 来分析字符串的长度,
public class HideEmptyStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var input = (string)value;
return string.IsNullOrWhiteSpace(input) ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
将转换器实例添加到您的页面资源,然后使用该转换器将可见性属性绑定(bind)到描述...
<TextBlock Text="{Binding Description}" Visibility="{Binding Description, Converter={StaticResource HideEmptyStringConverter}}" FontSize="14" Margin="10,0,10,5" MaxHeight="60" TextWrapping="Wrap" TextTrimming="WordEllipsis" />
关于c# - Windows Phone 8 文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19141734/