WP7 Silverlight网格没有显示内容

时间:2010-10-20 08:21:50

标签: silverlight grid windows-phone-7

在WP7上与SL网格进行了2个小时的斗争。我使用以下代码构建我的网格:

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);
            }

    }

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 个答案:

答案 0 :(得分:2)

经过一些实验,看起来GridLength没有正确计算像素高度 因为创建的网格单元不够大,所以不显示控件。

尝试增加用于网格长度的大小。我做了以下操作并获得了一些输出。

rd.Height = new GridLength(40);

或者,考虑通过动态调整大小来设置高度和宽度。 e.g:

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

如果您可以更多地调查此高度问题并发现它是高度问题错误,请将其提交给Microsoft。

答案 1 :(得分:1)

您的代码似乎工作正常(我试过Silverlight非Winphone,但应该是相同的。)

我的猜测是原因在于其他地方,例如。另一个覆盖uiBoard网格的元素,或者按钮是透明的,没有背景颜色/边框。