Silverlight 给文本块留一个边距,但仅当有内容时

Silverlight 给文本块留一个边距,但仅当有内容时,silverlight,xaml,windows-phone-7,Silverlight,Xaml,Windows Phone 7,我在数据模板的堆栈面板中有3个文本块 这个想法是,格式应该像“abc”,在文本块之间有空格,但是文本块“a”和“b”可能是空的,所以我最终得到了类似“c”的东西(在文本块c之前有两个空格)。如何确保只有在有内容的情况下才有边距?向边距添加一个转换器,并将其绑定到Text属性。如果文本内容为空,则让转换器将边距发送到统一厚度的0。向边距添加转换器,并将其绑定到文本属性。如果文本内容为空,则让转换器将边距发送到统一厚度的0。如果TextBlock的可见性设置为折叠,则不会显示边距。因此,如果文本为空

我在
数据模板的
堆栈面板中有3个
文本块


这个想法是,格式应该像“abc”,在
文本块之间有空格,但是
文本块
“a”和“b”可能是空的,所以我最终得到了类似“c”的东西(在
文本块
c之前有两个空格)。如何确保只有在有内容的情况下才有边距?

向边距添加一个转换器,并将其绑定到
Text
属性。如果文本内容为空,则让转换器将边距发送到统一厚度的
0

向边距添加转换器,并将其绑定到
文本属性。如果文本内容为空,则让转换器将边距发送到统一厚度的
0

如果
TextBlock
可见性设置为
折叠
,则不会显示
边距。因此,如果
文本
为空,我想您可以使用
StringToVisibilityConverter
将其
可见性
设置为
折叠

示例

首先,您需要创建一个这样的转换器

public class StringToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return Visibility.Collapsed;

        if (value != null && string.IsNullOrWhiteSpace(value.ToString()))
            return Visibility.Collapsed;

        return Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
然后,您需要将此转换器包含到xaml中

<converters:StringToVisibilityConverter x:Key="StringToVisibilityConverter " />
有关如何使用转换器的更多信息,请参阅


希望有帮助。:)

如果
文本块
可见性
设置为
折叠
,则将不显示
边距
。因此,如果
文本
为空,我想您可以使用
StringToVisibilityConverter
将其
可见性
设置为
折叠

示例

首先,您需要创建一个这样的转换器

public class StringToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return Visibility.Collapsed;

        if (value != null && string.IsNullOrWhiteSpace(value.ToString()))
            return Visibility.Collapsed;

        return Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
然后,您需要将此转换器包含到xaml中

<converters:StringToVisibilityConverter x:Key="StringToVisibilityConverter " />
有关如何使用转换器的更多信息,请参阅


希望有帮助。:)

将文本块放在网格中,使其位置固定。将转换器添加到martin并将其绑定到text属性,如果该文本的长度为零,则将边距设置为零。

将文本块放入网格中,以便其位置固定。将转换器添加到martin并将其绑定到text属性,如果该文本的长度为零,则将边距设置为零。

您有样本吗?我不太习惯xaml所以我有点生疏你有样品吗?我不太习惯xaml,所以我有点生疏了