为什么这个WPF窗口在设置了SizeToContent="WidthAndHeight"后没有根据其内容自适应大小?

4

我创建了这个简单的演示,因为在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和按钮,但实际上还有空白区域。请看以下图片:设计时和运行时。我肯定漏掉了什么……

您列出了您的WPF示例在做什么,但我不清楚您期望的行为是什么。您能告诉我们您期望的行为,这样我们就可以指导您走向正确的方向?不好意思,我在问题中看到了细节... - EtherDragon
我怀疑这只是为实际的TabItem保留的空间。在TabItem中放置一个TextBox。现在你只有一个标题。 - paparazzo
关于宽度,我怀疑边框标题区域占用了那么多的空间。 - paparazzo
1个回答

4
似乎窗口有一个最小宽度,即使你打开了调整大小功能也无法变得更小。这可能与顶部的按钮有关。如果将 WindowStyle 设置为 ToolWindow,它将显示正确的大小。有趣的是,如果将其设置为 None,它最初的大小与默认大小相同,但可以将其调整得更小。
不管怎样,你真的想让你的窗口这么小吗?如果你的宽度更大,窗口将正确地紧贴控件。

这只是一个测试,因为我在真实窗口上遇到了问题。让我再试一次,用更大的尺寸。 - Ignacio Soler Garcia
1
好的,你是正确的,但我仍然有问题,所以我会在3分钟内创建一个新问题,并接受这个问题(SO规则...: \) - Ignacio Soler Garcia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接