TabControl. VerticalAlignment = Фрагмент ничего не делает

Я пытаюсь заставить 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>

Отрывок выше продуктов следующее окно, пока я хочу, чтобы красная граница достигла нижней части окна:

alt text

8
задан Community 8 February 2017 в 14:18
поделиться

1 ответ

Проблема в вашей стековой панели . 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

19
ответ дан 5 December 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: