2010-03-26 31 views

Trả lời

26

Bạn có thể đặt mức độ hiển thị của nội dung của hàng thành "Đã thu gọn". Điều này sẽ chỉ hoạt động nếu thuộc tính Độ cao của RowDefinition được đặt thành "Tự động" để kích thước hàng dựa trên nội dung của nó.

Ví dụ,

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 

    <Border Grid.Row="0" BorderThickness="1" BorderBrush="Red"><TextBlock>Visible Row</TextBlock></Border> 
    <Border Grid.Row="1" BorderThickness="1" BorderBrush="Black" Visibility="Collapsed"><TextBlock>Hidden Row</TextBlock></Border> 
    <Border Grid.Row="2" BorderThickness="1" BorderBrush="Red"><TextBlock>Visible Row</TextBlock></Border> 
</Grid> 
+0

Chính xác những gì tôi đang tìm kiếm. Cảm ơn. –

+1

Bạn sẽ làm gì nếu có nhiều cột? Nó không phải là rất thiết thực để ẩn từng phần tử ... –

+1

Clement- Bọc từng phần tử trong hàng trong một vùng chứa như một lưới khác và chỉ hiển thị/ẩn/thu gọn khả năng hiển thị của vùng chứa. – Kurren

3

Tôi thực sự chỉ hỏi những câu hỏi tương tự một vài ngày trước đây, hãy xem ở đây:

Hide grid row in WPF

Về cơ bản thiết lập RowHeight Auto và sau đó Thiết Visibility = "Collapsed" sẽ ẩn hàng cho bạn. Vấn đề duy nhất tôi có là Margins, nhưng đó là nhỏ. Ít nhất là hàng đã bị ẩn.

+1

Điểm tốt về lợi nhuận, cảm ơn. –

1

Chỉ cần làm điều này:

XAML:

<Grid.RowDefinitions> 
    <RowDefinition Height="1*" x:Name="name1" /> 
    <RowDefinition Height="Auto" x:Name="name2" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
</Grid.RowDefinitions> 

C# cho sự sụp đổ:

name1.Height = new GridLength(0); 
name2.Height = new GridLength(0); 

C# cho visibility:

name1.Height = new GridLength(1, GridUnitType.Star); 
name2.Height = GridLength.Auto; 
Các vấn đề liên quan