我有一个WrapPanel
名称为“PageWrapPanel”
在我的WPF应用程序的主窗口中
现在我试图在这个包装面板中添加一个堆栈面板五次......
StackPanel stkPnl = new StackPanel();
stkPnl.Width = 300;
stkPnl.Height = 150;
stkPnl.Background = Brushes.DarkKhaki;
for (int i = 0; i < 5; i++)
{
PageWrapPanel.Children.Add(stkPnl);
}
但它不起作用...... 出了什么问题?
答案 0 :(得分:2)
您无法在逻辑树中的多个位置添加相同的元素。您需要添加五个相同的StackPanel
代替。
for (int i = 0; i < 5; i++)
{
StackPanel stkPnl = new StackPanel();
stkPnl.Width = 300;
stkPnl.Height = 150;
stkPnl.Background = Brushes.DarkKhaki;
PageWrapPanel.Children.Add(stkPnl);
}
顺便说一句,这应该从你得到的异常中的错误消息中明显看出(“指定的元素已经是另一个元素的逻辑子元素了。”),你完全应该提供而不是让它人们猜。
答案 1 :(得分:1)
尝试在循环中创建StackPanel
for (int i = 0; i < 5; i++)
{
StackPanel stkPnl = new StackPanel();
stkPnl.Width = 300;
stkPnl.Height = 150;
stkPnl.Background = Brushes.DarkKhaki;
PageWrapPanel.Children.Add(stkPnl);
}
否则,您已尝试将多个StackPanel放在WrapPanel中多次,这是您的错误所在。