Вместо этого используйте DockPanel. StackPanel явно не заботится о видимом пространстве, тогда как DockPanel выполняет все расчеты размера на основе доступного пространства.
Обновление:
Кроме того, по моему опыту, помещение тела окна в вид и только наличие вида в окне обеспечивает лучший опыт работы с автоматическим размером.
По какой-то причине помещение всех детей непосредственно в окно кажется не очень хорошим размером.
Обновление 2:
Я бы удалил явный атрибут DockPanel.Dock из элемента, который нужно растянуть (заполнить) неиспользуемым пространством.