Если TextBlock
s Visibility
установлено на Collapsed
, Margin
не будет отображаться. Поэтому, я думаю, вы можете использовать StringToVisibilityConverter
для установки Visibility
на Collapsed
, если Text
пусто.
Пример
Сначала вам нужно создать такой конвертер.
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 " />
Наконец, используйте его внутри TextBlock
.
<TextBlock x:Name="MyTextBlock" Text="{Binding SomeText}"
Visibility="{Binding SomeText, Converter={StaticResource StringToVisibilityConverter}}" />
Для получения дополнительной информации о том, как использовать конвертер, посмотрите этот пост .
Надеюсь, это поможет. :)