用户控件上的 SizeToContent

Posted

技术标签:

【中文标题】用户控件上的 SizeToContent【英文标题】:SizeToContent on UserControl 【发布时间】:2011-03-24 09:54:01 【问题描述】:

事实上,UserControl 缺少我们在 Window 中拥有的属性 'SizeToContent'。

所以问题是:

在 UserControl 上模拟 SizeToContent=WidthAndHeight 行为的最简单和正确的方法是什么?

UPD...是的,我知道如果在放置用户控件的容器中没有定义高度和宽度,它会自动获取。

但是,当您将一个具有已定义大小的 userControl 放入另一个没有大小的 userControl 中,并且它们一起进入容器时,它就不起作用了。

在这种情况下,您的第二个控件将占用它可以获得的所有空间。

【问题讨论】:

【参考方案1】:

使用Grid 并将RowColumn 的高度设置为*,以使您想要调整到窗口大小的项目。

【讨论】:

我不断收到“*”无法转换为长度。你能告诉我一个如何将网格行高和列高设置为 * 的例子吗?【参考方案2】:

只是不要设置WidthHeight 属性。然后它将采用其孩子需要的任何宽度和高度。

【讨论】:

1) 我在主窗口中有一个没有设置尺寸的网格。 2) 我有一个带有网格且未设置大小的用户控件。 3)我有一个定义了高度和宽度的第三个控件。我将第三个注入到第二个中,将第二个注入到第一个中,我的第二个控件得到了它可以采用的所有大小,但我希望它围绕第三个进行。

以上是关于用户控件上的 SizeToContent的主要内容,如果未能解决你的问题,请参考以下文章

如何从后面的用户控件代码访问用户控件所在的主窗口上的网格列

ASP .NET单页上的多个用户控件 - 回发问题

无法访问用户控件上的公共属性wpf c#

需要鼠标滚动滚动用户控件

无法从Javascript访问Master页面上的用户控件中的标签

动态创建到 WPF 表单的用户控件上的按钮单击事件