我需要动态地创建一些 FrameworkElements。我有一个 StackPanel,我在其中创建了一个 Pivot,一个 PivotItem,一个带有 StackPanel 和按钮的 ScrollViewer,如下所示:
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);
这是 C# XAML 代码:
<StackPanel x:Name="stkPanel">
</StackPanel>
如果我尝试在 XAML 中创建所有元素,ScrollViewer 会按预期工作,但是当页面中发生某些事件时,我需要动态创建它们。
在调试中检查页面,PivotItem 有“ActualHeight == 0”,所以我认为它里面的 ScrollViewer 不能正常工作,但我不知道如何修复它,也许可以对 ScrollViewer 说“给自己充电”使滚动工作。