【发布时间】:2015-07-16 15:45:17
【问题描述】:
xaml 中的堆栈面板:
<StackPanel HorizontalAlignment="Right" Width="150" Height="280" Name="MyPanel">
<TextBox HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="97"/>
</StackPanel>
然后我以动态方式将一些子项添加到该堆栈面板,例如:
MyPanel.Children.Add(new Rectangle { Fill = new SolidColorBrush(Colors.Chartreuse) }, Width=15, Height=15);
我还从代码隐藏调用UpdateLayout:
MyPanel.UpdateLayout();
但布局保持不变,只有一个文本框。我也尝试过事先清理孩子,但效果不佳。
【问题讨论】:
-
您是否正在为要添加的矩形设置大小(宽度、高度)?如果不是,它可能只是因为尺寸不可见。添加内容后,尝试在 Mypanel.Children 的控制台计数中写出。
-
是的,很抱歉我遗漏了那部分,不想在这里混乱。宽度和高度是成比例的,应该适合。当我检查控制台中的计数时,它会显示正确的孩子数,在本例中为 2
-
我不明白你的问题?您必须务实地向 stackpanel 添加控件吗? @Mefhisto1
-
是的,但没有反映更改(矩形未显示)
-
你什么时候调用这个方法
MyPanel.Children.Add(...)?