Во-первых, гарантировали ли вы, что эта проблема не вызвана тем, что WrapPanel достигает максимально доступных размеров (т. Е. Если его размер ограничен его родительским окном или элементом)? Потому что, если это так, то вам нужно либо посмотреть на реструктуризацию вашего общего макета, либо обернуть его в ScrollViewer.
Если вышеизложенное не так, и у WrapPanel достаточно места для «роста», это действительно кажется странной проблемой. Вы говорите, что StackPanels генерируются динамически. Так что в вашем коде вы должны звонить myWrapPanel.Children.Add(stackPanel)
. После этой строки кода вы можете попробовать добавить что-то вроде следующего:
myWrapPanel.Height = myWrapPanel.Children.Cast<FrameworkElement>().Max(e => e.ActualHeight);
РЕДАКТИРОВАТЬ: только что понял, что это будет работать, только если одна StackPanel занимает всю высоту, как на вашем изображении. но, возможно, он выведет вас на правильный путь!