StackPanel で積んでいって、最後のコントロールに残っている領域すべてを割り当てたい場合、たとえば以下のように実装します。
 この例では、StackPanel だけでは無理そうなので DockPanel の力を借りています。
<DockPanel>
    <!-- StackPanelの部分 -->
    <StackPanel DockPanel.Dock="Top">
        <Button Content="AAAA" />
        <Button Content="AAAA" />
        <Button Content="AAAA" />
        <Button Content="AAAA" />
    </StackPanel>
    <!-- あまりの部分 -->
    <TextBox AcceptsReturn="True"
             HorizontalScrollBarVisibility="Auto"
             VerticalScrollBarVisibility="Auto"/>
</DockPanel>
2013-12-8 追記
 「Grid ではダメなのか?」という指摘を受けたので Grid を使った例について記す。
 ポイントは、StackPanel 部分の RowDefinition を "Auto" に設定し、あまり側の RowDefinition を "*" で設定してる点。
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <!-- StackPanelの部分 -->
    <StackPanel>
        <Button Content="AAAA" />
        <Button Content="AAAA" />
        <Button Content="AAAA" />
        <Button Content="AAAA" />
    </StackPanel>
    <!-- あまりの部分 -->
    <TextBox Grid.Row="1"
             AcceptsReturn="True"
             HorizontalScrollBarVisibility="Auto"
             VerticalScrollBarVisibility="Auto"/>
</Grid>