В проекте WPF у меня есть Grid с 3 строками.В каждой строке у меня есть StackPanel, содержащая TextBlock.
Когда все StackPanel являются видимыми, я бы хотел, чтобы каждая StackPanel занимала 1/3 высоты сетки каждый.Но когда одна StackPanel свернута, то оставшиеся 2 StackPanel занимают по 1/2 от высоты сетки каждый.И если 2 свернуты, то оставшаяся заполняет всю сетку.
Ниже приведен пример кода, иллюстрирующий пользовательский интерфейс.
Если я изменю 3-й RowDefinition
Height
на "Auto"
и установите panel3.Visibility = "Collapsed"
, тогда произойдет правильное.Но потом, если я изменю его обратно на «Видимый», он не будет работать.
Я не могу найти способ достичь того, чего хочу.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel x:Name="panel1" Grid.Row="0" Visibility="Visible">
<TextBlock x:Name="txt1" Text="FIRST ROW" />
</StackPanel>
<StackPanel x:Name="panel2" Grid.Row="1" Visibility="Visible">
<TextBlock x:Name="txt2" Text="SECOND ROW" />
</StackPanel>
<StackPanel x:Name="panel3" Grid.Row="2" Visibility="Visible">
<TextBlock x:Name="txt3" Text="THIRD ROW" />
</StackPanel>
</Grid>