0

我正在编写一个简单的益智游戏程序 - 除了一个单元格之外,所有单元格都充满了按钮,您必须通过使用唯一一个空单元格移动它们来正确排序它们。第一个版本是一个 3x3 网格,有 8 个按钮 + 一个不可见。但是,现在我想让用户更改行数和列数。我需要使用滑块来操纵高度和宽度。不幸的是,我不知道如何在运行时操纵网格。这是我目前所拥有的屏幕截图:截屏

4

1 回答 1

2

除非 WPF 与 Silverlight 有很大不同,否则您不能仅以编程方式更改列/网格定义吗?

(只是警告,在记事本中写这个,因为我没有视觉工作室来检查,所以我只是凭记忆)

myGrid.Columns.Clear();
myGrid.Rows.Clear();

int buttonNumber = 0;
double buttonWidth = GridWidth / numberOfColumns;
double buttonHeight = GridHeight / numberOfRows;

for (int columnNumber = 0; columnNumber < numberOfColumns; columnNumber++)
{
    var column = new ColumnDefinition();
    myGrid.Columns.Add(column);

    for (int rowNumber = 0; rowNumber < numberOfRows; rowNumber++)
    {
        var row = new RowDefinition();
        myGrid.Rows.Add(row);

        var button = new Button();
        button.Content = ++buttonNumber;
        button.Width = buttonWidth;
        button.Height = buttonHeight;
        Grid.SetColumn(button, columnNumber);
        Grid.SetRow(button, rowNumber);
    }
}
于 2012-06-02T14:09:38.047 回答