坚持StackPanel的底部

在我的窗口中,有一个网格占据了可用垂直空间的100%。 在Grid里面是一个StackPanel,里面有另外一个StackPanel和一个Frame。 我希望该框架坚持到父级StackPanel的底部。

<StackPanel>
    <StackPanel>
       //normal content
     </StackPanel>
     <Frame /> // should stick to the bottom
</StackPanel>

因此,例如,当用户调整窗口大小并且网格获得高度时,框架内部粘贴到底部。

我尝试了各种各样的东西,使用VerticalAlign="Stretch"或DockPanel并将Frame分配给DockPanel.Dock="Bottom" ,但没有成功。 我会感谢一两个暗示。 我不需要StackPanel是一个StackPanel,它也可以是一个DockPanel。


StackPanel不是用于您的需求的正确Panel ,因为它们不提供与Grid相同的布局和调整大小功能。 因此,只需将其替换为一个Grid ,将大部分空间提供给内部的StackPanel ,然后Frame将坚持到底部。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />   
    </Grid.RowDefinitions>
    <StackPanel>
       //normal content
     </StackPanel>
     <Frame Grid.Row="1" />
</Grid>

您可以在MSDN的面板概述页面找到有关不同WPF Panel的更多信息。


看起来更像是一个DockPanel的用例

<DockPanel>
    <StackPanel>
        <!--//normal content-->
    </StackPanel>
    <Frame DockPanel.Dock="Bottom"/> <!--// should stick to the bottom-->
</DockPanel>

根据有关StackPanel的MSDN文档

StackPanel将子元素排列成可以水平或垂直定向的单行。

所以在你的情况下,StackPanel是不正确的控制使用。 如果您希望将控件固定在某个特定位置,则可以使用DockPanel并将其放置在其中。

<DockPanel>
        <Frame DockPanel.Dock="Bottom"/>
</DockPanel>
链接地址: http://www.djcxy.com/p/50075.html

上一篇: Stick to the bottom of a StackPanel

下一篇: Get a textbox to fill a grid cell in WPF