我通过将Height
属性设置为0,在WPF网格中隐藏了一行。
我期待的东西类似于Visible
属性。
是否有更合适的方法来隐藏行?
答案 0 :(得分:27)
您可以将行内容的可见性设置为“Collapsed”。这仅在RowDefinition的Height属性设置为“Auto”时才有效,因此行大小基于它的内容。
例如,
<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>
答案 1 :(得分:3)
我实际上几天前刚问过同样的问题,请看一下:
基本上将RowHeight设置为Auto,然后设置Visibility =“Collapsed”将为您隐藏行。我唯一的问题是边缘,但那是次要的。至少这一行被隐藏了。
答案 2 :(得分:1)
这样做:
XAML:
<Grid.RowDefinitions>
<RowDefinition Height="1*" x:Name="name1" />
<RowDefinition Height="Auto" x:Name="name2" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
崩溃的C#:
name1.Height = new GridLength(0);
name2.Height = new GridLength(0);
C#的可见性:
name1.Height = new GridLength(1, GridUnitType.Star);
name2.Height = GridLength.Auto;