Я пытаюсь заставить TabControl к автоматическому изменить размер согласно его космосу (это находится в StackPanel):
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="100">
<Grid>
<StackPanel>
<TabControl
BorderBrush="Red"
BorderThickness="2"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch">
<TabItem Header="Tab1"/>
<TabItem Header="Tab2"/>
</TabControl>
</StackPanel>
</Grid>
</Window>
Отрывок выше продуктов следующее окно, пока я хочу, чтобы красная граница достигла нижней части окна:
Проблема в вашей стековой панели
. StackPanels не растягивает своих детей.
Вместо этого используйте DockPanel
: Последний ребенок будет растянут, чтобы заполнить оставшееся пространство (см. LastChildFill , который по умолчанию равен true
).
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="100">
<Grid>
<DockPanel>
<TabControl BorderBrush="Red" BorderThickness="2">
<TabItem Header="Tab1"/>
<TabItem Header="Tab2"/>
</TabControl>
</DockPanel>
</Grid>
</Window>
Явная установка VerticalAlignment
не является необходимой, так как его значение по умолчанию уже Stretch
.
Связанная ссылка: Обзор панелей на MSDN