2010-10-20 79 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网格的另一个元素,或者没有背景颜色/边框的按钮是透明的。