C# 网格的实际高度未正确继承其引用的StackPanel的值
我有一个里面有网格的StackPanel。我希望网格始终与StackPanel大小相同,因此我有如下代码设置:C# 网格的实际高度未正确继承其引用的StackPanel的值,c#,.net,wpf,C#,.net,Wpf,我有一个里面有网格的StackPanel。我希望网格始终与StackPanel大小相同,因此我有如下代码设置: <StackPanel Name="ContentPanel" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="#FF2B2B2B" Margin="0,0,0,0"> <Grid HorizontalAlignment="Stretch" Margin="0, 0,
<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>
然而,我的网格似乎不尊重高度。使用“调整大小”控制柄调整窗口大小时,栅格将正确展开,但不会正确收缩并保留最大尺寸。这意味着,如果您将垂直对齐=底部的位置调整为更小,则任何位置都可能从屏幕上“消失”
为了调试,我将StackPanel的设置高度设置为500——查看设计预览,我看到:
堆叠面板尺寸:
网格尺寸:
即使在那里,网格也试图填充整个窗口的空间,而不仅仅是它的父StackPanel,它应该从父StackPanel获得高度
如何将网格强制设置为StackPanel的固有高度?或者,即使用户调整窗口大小,我如何始终强制网格使用整个StackPanel
我尝试更改所有这些项目的垂直对齐值,并删除了网格中的所有内容,认为这可能会导致问题,但没有效果 堆栈面板将调整其高度以匹配其内容物的高度。一旦网格达到一定大小(例如800),堆栈面板将不会强制网格变小 获得所需的一个简单选项是将StackPanel放入父网格,然后将子网格绑定到父网格的高度