如何在代码/ xaml中为WPF显示UniformGrid中的网格线?

时间:2012-08-13 10:27:02

标签: c# wpf pixelsense

我想知道如何在UniformGrid for WPF中显示网格线。我知道在普通网格中设置网格线很容易,但我发现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

1 个答案:

答案 0 :(得分:0)

你总是可以在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);

您可以将上述代码包装在方法中,并将rows,cols作为方法参数传递。