У меня есть следующее Grid
, где я хочу ввести GridSplitter
, чтобы изменить размер содержимого Expander
, если оно развернуто:
<Grid Grid.Row="2" Margin="0,5,0,0" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<!-- Menu -->
</Grid>
<Grid Grid.Row="1">
<!-- Main-Content -->
</Grid>
<GridSplitter Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="3"/>
<Expander Grid.Row="3" Margin="0,10,0,0" VerticalAlignment="Bottom" Header="Details">
<TabControl ItemsSource="{Binding DetailsViewModels}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayHeader}"/>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
</Expander>
</Grid>
Моя проблема сейчас заключается в размере Expander
-Контент и поведение изменения размера при перемещении GridSplitter
.
Если я установлю Высоту RowDefinition
, где Расширитель равен *, то он займет много места, если расширительрасширен.
Если я установлю MaxHeight на TabControl
, тогда я могу сделать TabControl
меньшим, если Expander
развернут.Но если максимальная высота достигается только при непрерывном движении GridSplitter
.
Если я не установлю какой-либо размер, TabControl
принимает его на полную высоту, что, к сожалению, слишком много.
Как я могу добиться, чтобы TabControl
занимал определенную максимальную высоту, но я мог бы увеличить ее, используя GridSplitter
?