1

我想知道如何在 WPF 的 UniformGrid 中显示网格线。我知道在普通网格中设置网格线很容易,但我发现 UniformGrid 无法像普通网格那样设置网格线。最好为代码和 xaml 提供简单的示例,因为我希望在编程时更加灵活。谢谢!

      // LOGIN PAGE
     //gameType is input by users.If gameType =3, it will form 3x3 uniform grid in GAMEPLAY PAGE
     GamePlay main = new GamePlay(gameType, playerNum); 
     App.Current.MainWindow = main;
     this.Close();
     main.Show();

     // GAMEPLAY PAGE
     // Form the required grid, I can form the grid correctly, but I want grid line to make it more clear
4

1 回答 1

-1

您始终可以在 UniformGrid 顶部放置一个 ShowGridLines 设置为 True 的 Grid。

如下所示:

<Grid x:Name="mainGrid">
    <UniformGrid Rows="4" Columns="4">

    </UniformGrid>
    <Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    </Grid>
</Grid>

假设您有一个要放置 uniformgrid 的主网格和一个带线条的网格,示例代码如下:

    int rows = 4;
    int cols = 4;

    var uniformGird = new UniformGrid() {Rows = rows, Columns = cols};
    mainGrid.Children.Add(uniformGird);

    var grid = new Grid()
                    {
                        ShowGridLines = true
                    };
    for (int i = 0; i < rows; i++)
    {
        grid.RowDefinitions.Add(new RowDefinition());
    }
    for (int i = 0; i < cols; i++)
    {
        grid.ColumnDefinitions.Add(new ColumnDefinition());
    }

    mainGrid.Children.Add(grid);

您可以将上述代码包装在一个方法中,并将行、列作为方法参数传递。

于 2012-08-13T17:04:46.090 回答