【问题标题】:Why this WPF window is not sizing to its content having SizeToContent="WidthAndHeight"?为什么这个 WPF 窗口的大小不适合具有 SizeToContent="WidthAndHeight" 的内容?
【发布时间】:2012-02-24 08:26:25
【问题描述】:

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

由于网格将所有内容都设置为 Auto,并且窗口配置为 sizetocontent,我希望在窗口中有 TabControl 和按钮,但没有其他内容,但上面有空格。看:

设计时

运行时

我一定是错过了什么……

【问题讨论】:

  • 您列出了您的 WPF 示例正在做什么,但我不清楚您期望什么行为。您能否告诉我们您的期望,以便我们为您指明正确的方向? NVM 我在问题中看到了细节......
  • 我怀疑它只是为实际的 TabItem 保留空间。在 TabItem 中放置一个 TextBox。现在你只有一个 Header。
  • 至于宽度,我怀疑边框标题区域占用了那么多空间。

标签: .net wpf resize sizetocontent


【解决方案1】:

窗口似乎有一个最小宽度,即使您打开调整大小,您也无法低于该宽度。这可能与顶部的按钮有关。如果您将WindowStyle 设置为ToolWindow,它将显示为正确的大小。有趣的是,如果您将其设置为None,它最初的大小将与默认大小相同,但您可以将其调整为更小。

不管怎样,你真的希望你的窗户这么小吗?如果您的宽度更大,则窗口将正确地贴合控件。

【讨论】:

  • 这只是一个测试,因为我在使用真实窗口时遇到了问题。让我用更大的尺寸再试一次。
  • 好的,你是对的,但我仍然有问题,所以我将创建一个新问题并在 3 分钟内接受这个问题(SO 规则... :)
猜你喜欢
  • 2010-12-16
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多