Почему это окно WPF не соответствует его содержимому, имеющему SizeToContent = "WidthAndHeight"? - PullRequest
4 голосов
/ 01 февраля 2012

Я создал эту простую демонстрацию, потому что у меня возникли проблемы с автоматическим изменением размеров в WPF. Это простой код:

<Window x:Class="UnderstandSizing.Window3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SizeToContent="WidthAndHeight"
ResizeMode="NoResize" >

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <TabControl Grid.Row="0" >
        <TabItem Header="CCCC" />
    </TabControl>        
    <Button Grid.Row="1" Content="Text" />
</Grid>
</Window>

Поскольку в сетке все установлено на Авто, а окно настроено на размер и содержание, я ожидал иметь TabControl и кнопку и ничего больше в окне, но на ней есть пустые места. Посмотрите:

Design time Время разработки

Runtime Время выполнения

Я должен что-то упустить ...

1 Ответ

4 голосов
/ 01 февраля 2012

Похоже, что окно имеет минимальную ширину, которую вы не можете опустить ниже, даже если вы включите изменение размера. Это может быть связано с кнопками в верхней части. Если вы установите WindowStyle на ToolWindow, он будет отображаться как правильный размер. Интересно, что если вы установите его на None, он изначально будет того же размера, что и размер по умолчанию, но вы можете изменить его размер меньше.

В любом случае, вы действительно хотите, чтобы ваше окно было таким маленьким? Если ваша ширина больше, окно будет правильно прилегать к элементу управления.

...