Я хочу заполнить вертикальную панель стека объектами другого UserControl. Все UserControls должны быть масштабированы до самого широкого. Самый широкий элемент управления должен использовать всю доступную ширину.
ParentControl
<Grid x:Name="mainGrid" >
<StackPanel x:Name="myStackPanel" />
</Grid>
private void OnMyStackPanel_Loaded(object sender, RoutedEventArgs e)
{
myStackPanel.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
myStackPanel.Arrange(new Rect(0, 0, myStackPanel.DesiredSize.Width, myStackpanel.DesiredSize.Height));
var width = myStackPanel.ActualWidth;
}
Проблема в том, что фактическая ширина после равна 0. Я должен добавить элемент в StackPanel. Есть ли способ обернуть это во что-то, что предполагает доступную ширину, чтобы я мог это прочитать? Использование диспетчера не работает. ParentControl вложен в ячейку таблицы вида.