如何使WPF控件根据其中的内容更改其大小?Wpf控制大小内容?
回答
对于大多数控件,您可以在XAML中将其高度和宽度设置为Auto
,并且尺寸将根据其内容进行调整。
在代码中,您将宽度/高度设置为double.NaN
。有关详情,请参阅FrameworkElement.Width,特别是“备注”部分。
我有这样的问题,我指定了我的窗口的宽度,但高度设置为Auto
。子节点DockPanel
已将它的VerticalAlignment
设置为Top,并且窗口将VerticalContentAlignment设置为Top,但该窗口仍然比内容高很多。
使用史努比,我发现,在窗口内ContentPresenter
(在窗口的一部分,不是我放在那里)有它的VerticalAlignment
设置为Stretch
,没有retemplating整个窗口不能改变!
在经历了很多挫折之后,我发现SizeToContent
属性 - 您可以使用它来指定您希望Window根据内容的大小纵向,横向或者同时选择两种尺寸 - 现在所有尺寸都很好,我简直不敢相信,花了我很长时间才找到那个财产!
我希望所有网格都具有此属性... – Shimmy
当问题适用于顶层窗口时Set SizeToContent =“WidthAndHeight”。我在这一个上丢了几个小时 - 这不直观!查看http://stackoverflow.com/questions/812079/window-heightauto-problem – DeveloperDan
尽管'Window'是一个'Control',我认为OP是指'UserControl',它没有'SizeToContent财产。否则,OP将在主题中使用术语“窗口”。 – ProfK
如果您使用网格或类似组件: 在XAML中,确保网格中的元素已定义Grid.Row和Grid.Column,并确保它们没有边距。如果您使用设计器模式或Expression Blend,则可能会将边距指定为整个网格而不是特定的单元格。 作为细胞大小,我补充一点,填补了空间的其余部分额外的单元格:
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
我,坐在页上的自由形式的方式用户控制,而不是由另一个容器的限制,以及用户控件中的内容不会自动调整大小,而会扩展到用户控件的全部大小。
为了让用户控制简单地大小的内容,身高只有,我把它变成一个网格列设置为自动大小像这样:
<Grid Margin="0,60,10,200">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<controls1:HelpPanel x:Name="HelpInfoPanel"
Visibility="Visible"
Width="570"
HorizontalAlignment="Right"
ItemsSource="{Binding HelpItems}"
Background="#FF313131" />
</Grid>
- 1. WPF WebBrowser内容大小
- 2. 小容器大小的WPF控件
- 3. WPF内容控制造型
- 4. WPF窗口大小...大部分内容?
- 5. 内容控制内容大小填写以填写Silverlight 4
- 6. WPF大小RichTextBox根据内容
- 7. WPF框架 - 大小到内容
- 8. WPF调整大小的DataGrid的内容
- 9. wpf:根据其内容调整控件的大小
- 10. 将用户控件内容拉伸到主窗口大小WPF
- 11. 在调整WPF窗口大小时,如何控制首先折叠的内容
- 12. WPF和控制自动大小
- 13. 定制内容WPF
- 14. WPF控件默认大小
- 15. WPF绑定控件大小
- 16. 使用导航控制器更改弹出内容大小
- 17. 如何更改uipopoverpresentation控制器的内容大小?
- 18. 如何控制TextBlock的大小,以便内容完全显示
- 19. iframe内容大小
- 20. WebView内容大小
- 21. UIWebView内容大小
- 22. AWS EC2 HTTP Post内容大小限制
- 23. 控制内容流与大虾
- 24. WPF元素大小伸展时WPF控制
- 25. CSS制作内容DIV自动调整大小后的内容
- 26. EditText内容大小vs布局大小
- 27. OpenXML内容控制
- 28. PowerShell ISE WPF控制内联
- 29. UIWebView动态内容大小
- 30. VideoView内容调整大小
除了大量的控制设定他们的横向和纵向对齐拉伸,这将导致他们填充可用区域,所以你可能需要指定这些属性,例如HorizontalAlignment =“左”VerticalAlignment =“上”。 –