Как скрыть строку в сетке WPF? - PullRequest
12 голосов
/ 26 марта 2010

Я скрывал строку в сетке WPF, установив для свойства Height значение 0.

Я ожидал чего-то похожего на Visible свойство.

Есть ли более подходящий способ скрыть строку?

Ответы [ 3 ]

27 голосов
/ 26 марта 2010

Вы можете установить видимость содержимого строки как «Свернутый». Это будет работать только в том случае, если для свойства Height в RowDefinition установлено значение "Авто", поэтому размеры строк зависят от его содержимого.

Например,

<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>
3 голосов
/ 26 марта 2010

Я на самом деле только что задал тот же вопрос пару дней назад, посмотрите здесь:

Скрыть строку сетки в WPF

В основном установка RowHeight на Auto, а затем установка Visibility = "Collapsed" скроет строку для вас. Единственная проблема, с которой я столкнулся, - это наценки, но это было незначительно. По крайней мере, строка стала скрытой.

1 голос
/ 29 апреля 2015

Просто сделайте это:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...