Ответ 1
Самый простой способ сделать это - добавить именованный Grid
в качестве верхнего уровня в соответствующем столбце, который вы хотите скрыть. Затем вы можете просто скрыть его и все его содержимое, как и любой другой элемент управления:
В XAML:
<Grid x:Name="myGrid">
<Grid.RowDefinitions>
<RowDefinition x:Name="Row1" />
<RowDefinition x:Name="Row2" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Column1" />
<ColumnDefinition x:Name="Column2" />
</Grid.ColumnDefinitions>
<Grid x:Name="GridColumn1" Grid.Column="1">
...
</Grid>
</Grid>
Затем в коде позади:
GridColumn1.Visibility = Visibility.Collapsed;
Поскольку у вас есть несколько строк в Grid
, вы можете изменить их следующим образом:
<Grid x:Name="myGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Column1" />
<ColumnDefinition x:Name="Column2" />
</Grid.ColumnDefinitions>
<Grid x:Name="GridColumn0" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
<Grid x:Name="GridColumn1" Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
</Grid>
ОБНОВЛЕНИЕ → >
На самом деле нет необходимости переупорядочивать основной Grid
следующим образом: вы могли бы просто добавить два элемента управления Grid
, по одному в каждой строке соответствующего столбца, а затем установить Visibility
из них как вместе:
InnerGrid1.Visibility = InnerGrid2.Visibility = Visibility.Collapsed;
Вы даже можете добавить Grid
в каждую ячейку основного Grid
и иметь полный контроль над тем, какие ячейки видны в любой момент.