Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 网格的实际高度未正确继承其引用的StackPanel的值_C#_.net_Wpf - Fatal编程技术网

C# 网格的实际高度未正确继承其引用的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。我希望网格始终与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>

然而,我的网格似乎不尊重高度。使用“调整大小”控制柄调整窗口大小时,栅格将正确展开,但不会正确收缩并保留最大尺寸。这意味着,如果您将垂直对齐=底部的位置调整为更小,则任何位置都可能从屏幕上“消失”

为了调试,我将StackPanel的设置高度设置为500——查看设计预览,我看到:

堆叠面板尺寸:

网格尺寸:

即使在那里,网格也试图填充整个窗口的空间,而不仅仅是它的父StackPanel,它应该从父StackPanel获得高度

如何将网格强制设置为StackPanel的固有高度?或者,即使用户调整窗口大小,我如何始终强制网格使用整个StackPanel


我尝试更改所有这些项目的垂直对齐值,并删除了网格中的所有内容,认为这可能会导致问题,但没有效果

堆栈面板将调整其高度以匹配其内容物的高度。一旦网格达到一定大小(例如800),堆栈面板将不会强制网格变小

获得所需的一个简单选项是将StackPanel放入父网格,然后将子网格绑定到父网格的高度