2009-02-09 30 views
11

Hãy nói rằng tôi có một bố cục đơn giản như thế này:WPF: Làm thế nào để làm cho TextBlock trống không chiếm không gian?

<StackPanel> 
    <TextBlock Text="{Binding Path=Title}" /> 
    <TextBlock Text="{Binding Path=ShortDescription}" /> 
    <TextBlock Text="{Binding Path=LongDescription}" /> 
</StackPanel> 

Bây giờ khi tôi có SHORTDESCRIPTION thiết lập để null hoặc chuỗi rỗng vẫn có một khoảng cách ở vị trí của TextBlock thứ hai. Có một số tài sản để ngăn chặn một textblock rỗng từ chiếm không gian? Hoặc tôi nên sử dụng một số điều khiển khác?

Cảm ơn.

Trả lời

19

Bạn muốn đặt chế độ hiển thị của hộp văn bản thành "Đã thu gọn".

Tầm nhìn có thể là:
Visible - Tự giải thích
Ẩn - vô hình nhưng vẫn chiếm không gian
thu gọn - vô hình và chiếm không gian

Chỉnh sửa: Bạn có lẽ nên thiết lập kích hoạt, như vậy:

<Trigger Property="Text" Value="{x:Null}"> 
    <Setter Property="Visibility" Value="Collapsed"/> 
</Trigger> 
+1

Điều này sẽ chỉ hoạt động nếu giá trị là rỗng, nếu bạn muốn đặt chế độ hiển thị trên chuỗi rỗng _or_ trống, bạn sẽ muốn sử dụng trình chuyển đổi. [Chủ đề này] (https://stackoverflow.com/questions/5573864/how-to-hide-the-empty-textblock) thảo luận cách thực hiện điều đó. –

9

Bạn có thể muốn thử điều này:

<TextBlock.Style> 
    <Style TargetType="{x:Type TextBlock}"> 
     <Style.Triggers> 
      <Trigger Property="Text" Value=""> 
       <Setter Property="Visibility" Value="Collapsed"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</TextBlock.Style> 

Điều này sẽ khắc phục sự cố không gian trống dựa trên Ràng buộc Null/Rỗng.

Các vấn đề liên quan