Wpf控制大小到内容?

Shi*_*mmy 65 wpf autosize wpf-controls

如何使WPF控件根据其中的内容更改其大小?

Ree*_*sey 85

对于大多数控件,您可以Auto在XAML 中将其高度和宽度设置为适合其内容的大小.

在代码中,您将宽度/高度设置为double.NaN.有关详细信息,请参阅FrameworkElement.Width,尤其是"备注"部分.

  • 此外,许多控件将其Horizo​​ntal-和VerticalAlignment设置为Stretch,这将导致它们填充可用区域,因此您可能需要指定这些属性,例如Horizo​​ntalAlignment ="Left"VerticalAlignment ="Top". (37认同)

Tab*_*ool 31

我有这样的问题,我指定了我的窗口的宽度,但高度设置为Auto.孩子DockPanel将它VerticalAlignment设置为Top,窗口将VerticalContentAlignment设置为Top,但Window仍然比内容高得多.

使用Snoop,我发现ContentPresenter窗口内部(窗口的一部分,而不是我放在那里的东西)已VerticalAlignment设置为Stretch无法重新整个窗口而无法更改!

经过很多挫折之后,我发现了这个SizeToContent属性 - 你可以根据内容的大小来指定是否要让Window垂直,水平或两者都大小 - 现在一切都很好,我简直不敢相信我花了这么长时间才找到那个房产!

  • 当问题适用于顶级窗口时设置SizeToContent ="WidthAndHeight".我在这个上花了很多时间 - 这不直观!请参阅http://stackoverflow.com/questions/812079/window-heightauto-problem (4认同)
  • 虽然“Window”是一个“Control”,但我认为OP指的是“UserControl”,它没有“SizeToContent”属性。否则,OP 将在主题中使用术语“窗口”。 (3认同)