坚持StackPanel的底部

pet*_*ter 15 wpf

在我的窗口中,有一个网格占用了100%的可用垂直空间.在Grid内部是一个StackPanel,里面有另一个StackPanel和一个Frame.我想让那个Frame坚持到父StackPanel的底部.

<StackPanel>
    <StackPanel>
       //normal content
     </StackPanel>
     <Frame /> // should stick to the bottom
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

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

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

She*_*dan 24

A StackPanelPanel适合您的要求,因为它们不提供与a相同的布局和调整大小功能Grid.因此,只需将其替换为a Grid,将大部分空间放在内部StackPanel,然后Frame将粘贴到底部.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />   
    </Grid.RowDefinitions>
    <StackPanel>
       //normal content
     </StackPanel>
     <Frame Grid.Row="1" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

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


Man*_*ani 12

看起来更像是一个用例 DockPanel

<DockPanel>
    <StackPanel>
        <!--//normal content-->
    </StackPanel>
    <Frame DockPanel.Dock="Bottom"/> <!--// should stick to the bottom-->
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

  • 如果不知道用例,很难说DockPanel是不合适的.我会让@Peter决定. (4认同)