繁体   English   中英

Grid的ActualHeight无法从其引用的StackPanel正确继承值

[英]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尺寸:

https://imgur.com/a/Q30Zb

网格尺寸:

https://imgur.com/a/oGV4a

即使在那儿,网格也试图填充整个窗口的空间,而不仅仅是它的父StackPanel,它应该从中推导出它的高度!

如何强制将Grid设置为StackPanel固有的高度? 另外,即使用户调整窗口的大小,如何始终强制网格消耗整个StackPanel?

我尝试更改所有这些项目的VerticalAlignment值,并删除了网格中的所有内容,以为这可能会导致问题,但无济于事!

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

获得所需内容的一种简单方法是将StackPanel放入父网格,然后将子网格绑定到父网格的高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM