WPF可防止动态网格内容超出父级大小

时间:2013-05-02 16:33:17

标签: .net wpf xaml wpfgrid

拥有一个宽度不得超过700px的UserControl。将其MaxWidth设置为700px。

里面是一个网格 - 3列。第一列和第二列将具有标签,第三列将输入字段。标签内容将基于语言动态。

我想要做的是,当第0列和第1列中的标签在加载控件时动态获取其内容时,让第2列中的输入字段尽可能宽。

我已经设定:

1)第2列的最小宽度,以确保如果第0列和第1列中的标签太宽,则输入字段不会完全隐藏。

2)将第2列设置为Width =“*”,让我的输入字段在设置标签时使用所有可用宽度。

3)第0列和第1列宽度=“自动”让它们根据需要增长以容纳标签。

现在我遇到了这个问题 - 如果列0或1的文本太长,整个网格开始扩展超出其容器的最大大小,第三列被切断。有没有办法阻止它,而不在列0和1上设置MaxWidth?

2 个答案:

答案 0 :(得分:1)

您可以将MaxWidth设置为绑定到父项:

<Grid MaxWidth="{Binding ActualWidth, ElementName=NameOfYourParentElement}" ... />

答案 1 :(得分:0)

不,不是真的。

如果您不希望标签被切断并且您不希望网格扩展通过其父级,则您只有两个选项是在列0和1上设置最大宽度或设置最大宽度为第0列和第1列中的标签,并设置要包装的标签中的文本。否则,某些东西会被裁剪或重叠。