2010-10-20 76 views
0

在WP7上經歷了兩個小時的SL網格鬥爭。我使用下面的代碼建立自己的網格:WP7 Silverlight網格未顯示內容

public void initUIBoard() { int x, y; Button b;

 for (x = 0; x < mine.cRows; x++) { 
      RowDefinition rd = new RowDefinition(); 
      rd.Height = new GridLength(20); 
      uiBoard.RowDefinitions.Add(rd); 
     } 


     for (y = 0; y < mine.cColumns; y++) { 
      ColumnDefinition cd = new ColumnDefinition(); 
      cd.Width = new GridLength(20); 
      uiBoard.ColumnDefinitions.Add(cd); 
     } 


     for (x = 0; x < mine.cRows; x++) 
      for (y = 0; y < mine.cColumns; y++) 
      { 
       b = new Button(); 
       b.Click += new RoutedEventHandler(this.caseClick); 

       b.Tag = mine.gameBoard[x][y]; 
       Grid.SetRow(b, x); 
       Grid.SetColumn(b, y); 

       uiBoard.Children.Add(b); 
      } 

    } 

的事情是,我的網格顯示爲空,我做得不對這些行/列的定義還是什麼?

在此先感謝

回答

2

經過一番實驗,它看起來像GridLength不正確地計算像素的高度。
由於創建的網格單元不夠大,所以不顯示控件。

嘗試增加用於網格長度的大小。我做了以下,並得到了一些輸出。

rd.Height = new GridLength(40); 

或者,考慮通過動態設置高度和寬度大小。例如: -

rd.Height = new GridLength(1, GridUnitType.Auto); 

如果你可以研究這個身高問題更多一些,也覺得這是一個身高問題的bug,那麼請提交給微軟。

+0

謝謝!明白了你的觀點 – CoolStraw 2010-10-27 08:59:06

1

您的代碼似乎好工作(我想Silverlight的非Winphone,但應該是相同的)。

我的猜測是,原因是在別的地方,例如。覆蓋uiBoard網格的另一個元素,或者沒有背景顏色/邊框的按鈕是透明的。