Предположим, у вас есть несколько кнопок (выровненных по горизонтали) на странице, и вам необходимо скрыть / показать определенные кнопки в зависимости от состояния.
<Grid HorizontalAlignment="Center" Grid.Column="1" Width="340" VerticalAlignment="Center" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" x:Name="colOne"></ColumnDefinition>
<ColumnDefinition Width="0" x:Name="colTwo"></ColumnDefinition>
<ColumnDefinition Width="0" x:Name="colThree"></ColumnDefinition>
<ColumnDefinition Width="0" x:Name="colFour"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button x:Name="btnOne" Grid.Column="0" Height="50" Width="50" Content="One" Cursor="Hand" />
<Button x:Name="btnTwo" Grid.Column="1" Height="50" Width="50" Content="Two" Cursor="Hand" />
<Button x:Name="btnThree" Grid.Column="2" Height="50" Width="50" Content="Thre" Cursor="Hand" />
<Button x:Name="btnFour" Grid.Column="3" Height="50" Width="50" Content="Four" Cursor="Hand" />
</Grid>
Здесь btnOne будет виден на странице при выполнении.btnOne также будет выровнен по центру.Теперь, если мы хотим, чтобы три и четыре отображались, а одна скрывалась при нажатии на одну, мы можем использовать этот код:
private void btnOne_Click(object sender, RoutedEventArgs e)
{
SetGridColWidth(colOne, false);
SetGridColWidth(colThree, true);
SetGridColWidth(colFour, true);
}
private void SetGridColWidth(ColumnDefinition column, bool show)
{
if (show)
column.Width = new GridLength(2, GridUnitType.Star);
else
column.Width = new GridLength(0);
}
Вы можете переключаться между отображением любой кнопки во время выполнения.1008 * Надеюсь, это кому-нибудь поможет!