Получить ActualWidth пользовательского элемента управления - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу заполнить вертикальную панель стека объектами другого 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 вложен в ячейку таблицы вида.

...