2011-10-01 60 views
0

我添加矩形到画布面板是这样的:添加孩子包裹面板

For i = 0 to 20 
wrapPanel.children.add() 
next 

我想用这个循环,因为我不想指定限制:

Do 
wrapPanel.children.add() 
Loop 

但是如何在包装面板填满时打破循环?例如,当包装面板无法以其全部高度或宽度显示矩形时,循环会停止。

+0

AFAIK没有函数告诉你WrapPanel被填充。你可能需要做自己的计算才能找到答案。 –

+0

@ArjanEinbu如何计算它?或者使用Canvas代替它会更简单吗? – Cobold

+0

我不认为帆布有一个属性或功能来告诉你它什么时候已满。 – Paparazzi

回答

1

我终于搞定了!我使用Canvas而不是Wrap Panel。这里的工作代码:

for y = 0 to Canvas.height - Rectangle.height Step Rectangle.height 
for x = 0 to Canvas.width - Rectangle.width Step Rectangle.width 
    Canvas.sety(Rectangle,y) 
    Canvas.setx(Rectangle,x) 

    Canvas.children.add(Rectangle) 
next 
next 
2

这是给错误“规定的目视已经在另一个视觉或CompositionTarget根的一个孩子。” 我想使用用户控件从xml文件读取数据。

List<careeroption> qz = new List<careeroption>(); 
     qz = KompkinDP.GetQuizList(CareerID.ToString()); 
     foreach (careeroption q in qz) 
     { 
      UserControl1 uc = new UserControl1(); 

      for (int i = 0; i < q.CareerOptionQuiz.Count; i++) 
      { 
       uc.QuizName = q.CareerOptionQuiz[i]; 

       wrap1.Children.Add(uc); 
      } 
      // wrap1.Children.Add(uc); 
     }