У меня сетка с 4 кнопками. Все 4 кнопки видны при запуске моего приложения. После действий пользователя кнопки с 1 по 3 переключаются на свернутые / скрытые. Моя цель состоит в том, чтобы 3 кнопки больше не были видны, а четвертая кнопка «растекалась» по всей сетке (см. Последнее изображение в этом посте). К сожалению, мой код не работает так, как я хочу. : /
Это мой код прямо сейчас:
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Name="btn_1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 1"/>
<Button Name="btn_2" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 2"/>
<Button Name="btn_3" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 3"/>
<Button Name="btn_4" Grid.Row="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 4"/>
</Grid>
Это результат кода:
Если я установил видимость кнопки 1 на 3 от видимого к скрытому или свернутому, вид будет следующим:
Какой результат у меня на самом деле ожидается следующее:
Я также пытался работать с док-панелью. К сожалению, также без успеха. Должен ли я работать с событиями или триггерами?
Я ценю любой совет. Заранее спасибо.
Правка - Решение:
Переключение высоты кнопки 1 на 3 с "*"
на "auto"
является решением.
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="{Binding ControlRowDefinitionHeight}"/>
<RowDefinition Height="{Binding ControlRowDefinitionHeight}"/>
<RowDefinition Height="{Binding ControlRowDefinitionHeight}"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Name="btn_1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 1"/>
<Button Name="btn_2" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 2"/>
<Button Name="btn_3" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 3"/>
<Button Name="btn_4" Grid.Row="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="Button 4"/>
</Grid>
Я установил привязку ControlRowDefinitionHeight (public GridLength ControlRowDefinitionHeight
) в new GridLength(1, GridUnitType.Star)
в моем коде, если все 4 кнопки видны. Если видна только четвертая кнопка, ControlRowDefinitionHeight имеет значение new GridLength(1, GridUnitType.Auto)
.