我将网格行设计为另一个网格,在两列之间以 20/80 的比例分割,左侧的最小宽度为 250:
<Grid Grid.Row="1" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" MinWidth="250"/>
<ColumnDefinition Width="4*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Background="Red" />
<Grid Grid.Column="1" Background="Blue" />
</Grid>
在宽度大于 1250 时,这可以按预期工作,但是一旦我缩小到该值以下,第一列就会停止收缩(应该如此),因为它已经达到 250,但第二列继续以与以前相同的速度收缩(而不是以与周围窗口相同的速度倒塌)。结果是部分内容被剪掉了,即使网格设置为拉伸到其容器:
为什么蓝框没有像其他星宽列那样调整大小以适应其父容器?为什么设置最小宽度突然打破了这一点?
更新:我在一个示例窗口中重建了我的整个 UI(通过简单地用边框替换每个部分的内容),并且无法重现该问题:
内容(没有遇到任何 MinWidth 约束并且似乎也在正确调整大小,尽管像它们的父网格列一样太慢)仍然以某种方式影响网格列?原件在 UserControl 中而这是在 Window 中的事实又如何呢?