为什么这个WPF窗口没有调整其大小为SizeToContent =“WidthAndHeight”的内容?

时间:2012-02-01 16:34:54

标签: .net wpf resize sizetocontent

我创建了这个简单的演示,因为我在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>

由于网格中的所有内容都设置为“自动”,并且窗口配置为sizetocontent,我希望在窗口中有TabControl和按钮而没有其他内容,但是它上面有空格。看:

Design time设计时间

Runtime运行时

我一定错过了什么......

1 个答案:

答案 0 :(得分:4)

看起来窗口的最小宽度即使你打开调整大小也不能低于此值。这可能与顶部的按钮有关。如果您将WindowStyle设置为ToolWindow,它将显示为正确的尺寸。有趣的是,如果将其设置为None,它最初将与默认大小相同,但您可以将其调整为较小。

无论如何,你真的希望你的窗户这么小吗?如果您的宽度更大,窗口将正确贴合控件。