c# - Windows Phone 8 文本 block

标签 c# xaml windows-phone-8

如果没有文本,如何在 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/

相关文章:

c# - 是什么阻止了样式在运行时应用于 Silverlight 控件?

c# - XAML 数据类型中的神秘 `1

windows-phone-7 - 使用应用栏 WP8 创建屏幕截图

javascript - 在 highcharts 中显示 .Net Core Web API 响应

c# - C# 属性组

c# - WebApi OData 内联计数不起作用

c# - ASP.NET - 模型不存在

wpf - 在工具提示中添加断线

c# - 在 Windows Phone 8 上拍摄肖像视频

iphone - 您可以从另一个应用程序中删除一个应用程序吗?