2012-08-13 62 views
1

我想知道如何在UniformGrid中爲WPF顯示網格線。我知道在普通網格中很容易設置網格線,但是我發現UniformGrid不能像普通網格那樣設置網格線。給代碼和xaml提供一個簡單的例子是很好的,因爲我想在編程方面更加靈活。謝謝!如何在代碼/ xaml中爲WPF顯示UniformGrid中的網格線?

 // 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

考慮在'UniformGrid'單元格中使用'Rectangle'作爲根元素。請參閱[this](http://wrb.home.xs4all.nl/Articles_2011/Article_WPFUniformGrid_01.htm)教程 – dvvrd 2012-08-15 07:49:13

回答

0

您可以隨時放置一個網格,將ShowGridLines設置爲True在UniformGrid頂部。

類似下面:

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

你可以將上面的代碼包裝在一個方法中,並傳遞行,列作爲方法參數。

+0

我將從其他頁面傳遞列和行的值,所以我不想將它固定爲4x4,因爲數字列和行的靈活性取決於用戶 – 2012-08-14 01:53:42

+0

您可以附加應用程序的屏幕截圖嗎? – sthotakura 2012-08-14 07:12:38

+0

我已經添加了一些代碼,以便您可以瞭解更多 – 2012-08-15 02:24:16