См. Мою пользовательскую панель автоматического изменения размера / класс сетки здесь .Я написал это специально для решения этой проблемы - полный источник находится в вопросе.
(Чтобы использовать его, создайте новый класс, наследуемый от панели и вставьте рабочий код в класс, затем используйте пользовательский классточно так же, как StackPanel.)
В настоящее время он поддерживает только вертикальную ориентацию, но также может быть легко изменен для поддержки горизонтальной.