如何在更改行跨度后调整网格的子元素的大小
本文关键字:网格 调整 元素 | 更新日期: 2023-09-27 18:07:50
我有一个标准的WPF网格,在一些单元格中有一些边框元素(这些单元格又包含一些内容)。
我需要在运行时调整其中一些元素的大小,所以我正在程序地设置所述元素的RowSpan,如下所示:
int span = Grid.GetRowSpan(cell);
Grid.SetRowSpan(cell, ++span);
我已经验证了span实际上正在被设置,但问题是Border元素保持相同的大小并移动到span的垂直中心。例如,当span为2时,它会在两行之间浮动。如何触发元素的大小调整?我已经尝试调用InvalidateArrange(), invalidatemmeasure(),以及InvalidateVisual(),但这些都没有影响任何变化。
您需要将您的Border
元素上的属性VerticalAlignment
设置为VerticalAlignment.Stretch
,以便它扩展到您的Grid
的可用空间
没关系,我发现我的错误了-货物崇拜程序。我使用一个Adorner来允许用户调整单元格内容的大小,并且模糊地遵循MSDN的示例,并且我的Adorner在初始化期间包含以下内容:
if (_cell.Width.Equals(Double.NaN))
_cell.Width = _cell.RenderSize.Width;
if (_cell.Height.Equals(Double.NaN))
_cell.Height = _cell.RenderSize.Height;
设置宽度和高度以允许显式调整大小。我误解了这实际上会阻止父元素调整元素的大小。