Мне нужно динамически создать некоторые FrameworkElements. У меня есть StackPanel, и я создаю внутри него Pivot с одним PivotItem и внутри ScrollViewer с StackPanel и кнопками, например так:
Pivot pivot = new Pivot();
PivotItem pivotItem = new PivotItem();
pivot.Items.Add(pivotItem);
ScrollViewer scrollViewer = new ScrollViewer();
StackPanel stackContent = new StackPanel();
scrollViewer.Content = stackContent;
pivotItem.Content = scrollViewer;
stackContent.Children.Add(new Button() { Content = "button 1" });
stackContent.Children.Add(new Button() { Content = "button 2" });
stackContent.Children.Add(new Button() { Content = "button 3" });
stackContent.Children.Add(new Button() { Content = "button 4" });
stackContent.Children.Add(new Button() { Content = "button 5" });
stackContent.Children.Add(new Button() { Content = "button 6" });
stackContent.Children.Add(new Button() { Content = "button 7" });
stackContent.Children.Add(new Button() { Content = "button 8" });
stackContent.Children.Add(new Button() { Content = "button 9" });
stackContent.Children.Add(new Button() { Content = "button 10" });
stackContent.Children.Add(new Button() { Content = "button 11" });
stkPanel.Children.Add(pivot);
и это код С# XAML:
<StackPanel x:Name="stkPanel">
</StackPanel>
Если я попытаюсь создать все элементы в XAML, ScrollViewer будет работать, как и ожидалось, но мне нужно создавать их динамически, когда на странице происходят какие-то события.
Проверяя страницу в отладке, PivotItem имеет «ActualHeight == 0», поэтому я предполагаю, что ScrollViewer внутри нее не работает по этой причине, но я не знаю, как это исправить, может быть, как-то сказать ScrollViewer «подзарядить себя» чтобы прокрутка работала.