In my window, there is a Grid that takes up 100% of the available vertical space. Inside that Grid is a StackPanel with another StackPanel and a Frame inside. I would like t
Looks more like a use case for DockPanel
<DockPanel>
<StackPanel>
<!--//normal content-->
</StackPanel>
<Frame DockPanel.Dock="Bottom"/> <!--// should stick to the bottom-->
</DockPanel>
A StackPanel
is not the correct Panel
to use for your requirements as they do not provide the same layout and resizing capabilities as a Grid
. Therefore, simply replace it with a Grid
, give the majority of the space to the inner StackPanel
and then the Frame
will stick to the bottom.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel>
//normal content
</StackPanel>
<Frame Grid.Row="1" />
</Grid>
You can find out more about the different WPF Panel
s in the Panels Overview page on MSDN.
According to MSDN docs about StackPanel
A StackPanel Arranges child elements into a single line that can be oriented horizontally or vertically.
So in your case, StackPanel is not the right control to use. If you want your control to be fixed at a particular position, you can use DockPanel and place your control inside it.
<DockPanel>
<Frame DockPanel.Dock="Bottom"/>
</DockPanel>