![](/img/trans.png)
[英]Line element Y value not Binding to Parent StackPanel ActualHeight property
[英]ActualHeight of Grid not correctly inheriting value from the StackPanel it references
我有一个内部带有网格的StackPanel。 我希望该Grid始终与StackPanel相同,因此我将代码设置为:
<StackPanel Name="ContentPanel" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="#FF2B2B2B" Margin="0,0,0,0">
<Grid HorizontalAlignment="Stretch" Margin="0, 0, 0, 0" VerticalAlignment="Top" Height="{Binding ActualHeight, ElementName=ContentPanel}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Content Goes Here! -->
</Grid>
</StackPanel>
但是,我的网格似乎并没有考虑到高度。 当我使用“调整大小手柄”调整窗口大小时,网格可以正确扩展,但不能正确收缩并保留最大尺寸。 这意味着,如果将其位置调整为较小,则任何通过VerticalAlignment = Bottom引用的位置的内容都可能在屏幕上“消失”。
为了进行调试,我给StackPanel设置了一个500的高度-在设计预览中,我看到了:
StackPanel尺寸:
网格尺寸:
即使在那儿,网格也试图填充整个窗口的空间,而不仅仅是它的父StackPanel,它应该从中推导出它的高度!
如何强制将Grid设置为StackPanel固有的高度? 另外,即使用户调整窗口的大小,如何始终强制网格消耗整个StackPanel?
我尝试更改所有这些项目的VerticalAlignment值,并删除了网格中的所有内容,以为这可能会导致问题,但无济于事!
堆栈面板将调整其高度以匹配其内容的高度。 一旦网格达到某个大小(例如800),堆栈面板将不会强制网格变小。
获得所需内容的一种简单方法是将StackPanel放入父网格,然后将子网格绑定到父网格的高度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.