2011-11-22 2 views

답변

3

TextBlockVisibilityCollapsed으로 설정하면 Margin이 표시되지 않습니다. 그래서 Text이 비어 있다면 StringToVisibilityConverter을 사용하여 VisibilityCollapsed으로 설정할 수 있습니다.

먼저이 같은 컨버터를 작성해야합니다.

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}}" /> 

변환기 사용 방법에 대한 자세한 내용은 this post을 참조하십시오.

는 도움이되기를 바랍니다. :)

+0

샘플이 있습니까? 나는 xaml에 익숙하지 않아 약간 녹슬지 않다. – Alex

+0

그냥 약간의 샘플 코드를 추가했다 :) –

+0

thanks! 그것은 잘 작동합니다! – Alex

0

여백에 변환기를 추가하고 Text 속성에 바인딩하십시오. 텍스트 내용이 비어 있으면 균일 한 두께 0의 여백을 변환기에 보냅니다.

0

텍스트 블록을 그리드에 배치하여 위치가 고정되도록하십시오. 변환기를 마틴에 추가하고 텍스트 속성에 바인딩하고 텍스트의 길이가 0이면 여백을 0으로 설정합니다.

관련 문제