2012-04-29 128 views
0

我是WPF的初學者,我把下面的代碼放在一個按鈕點擊處理程序中,我希望點擊按鈕後會有10條豎線,但是隻有一條,有什麼想法?謝謝!而'spDrawPanel'是一個堆棧面板。爲什麼這段代碼不會在WPF中創建10行?

 double aw = this.spDrawPanel.ActualWidth; 
     double ah = this.spDrawPanel.ActualHeight; 
     for (int i = 1; i <= 10; i++) 
     { 
      Line ln = new Line(); 
      ln.Stroke = Brushes.Black; 
      ln.X1 = aw/10 * i; 
      ln.Y1 = ah; 
      ln.X2 = aw/10 * i; 
      ln.Y2 = ah - 15; 
      ln.StrokeThickness = 1; 
      this.spDrawPanel.Children.Add(ln); 
     } 
+0

您是否在調試器中設置了斷點來驗證spDrawPanel.Children集合實際上是否有10個子節點,並驗證生成的行的X/Y座標? – BTownTKD 2012-04-29 01:48:09

+0

是的,它有10個孩子,他們的x/y不同。 – user1363629 2012-04-29 01:56:21

+0

'aw'的價值是什麼? – 2012-04-29 02:10:21

回答

1

的問題是,您使用的是StackPanel它默認堆每一行Verticaly彼此,你開始在StackPanel,因此你用完了房地產的底部。嘗試將Y1設置爲15,將Y2設置爲0,您將獲得10行。

+1

謝謝!是的,這個問題是由StackPanel引起的,我只是用Canvas替換StackPanel,並且一切正常。太感謝了。 – user1363629 2012-04-29 02:20:04

+0

@ user1363629很高興提供幫助 – 2012-04-29 02:26:58