2017-02-09 36 views
0

我在WPF中以編程方式使用網格時遇到問題。我試圖添加一個網格與行和列到我的窗口,但我想用C#代碼,而不是在XAML。我製作了一個名爲的Playboard,其中我想添加網格和列/行。問題是網格沒有添加到窗口中。我使用grid.showlines屬性測試了它,但沒有顯示出來。動態使用循環在WPF中製作網格

class PlayBoard 
{ 
    public Grid playGrid; 

    public PlayBoard(int width, int height) 
    { 
     playGrid = new Grid(); 
     playGrid.Width = width-20; 
     playGrid.Height = height-20; 

     for (int i = 0; i < (playGrid.Height/10); i++) 
     { 
      var myRowDefinition = new RowDefinition(); 
      myRowDefinition.Height = new GridLength(10); 
      playGrid.RowDefinitions.Add(myRowDefinition); 

     } 

     for (int j = 0; j < (playGrid.Width/10); j++) 
     { 
      var myColumnDefinition = new ColumnDefinition(); 
      myColumnDefinition.Width = new GridLength(10); 
      playGrid.ColumnDefinitions.Add(myColumnDefinition); 
     } 
    } 
} 

這裏是我的主窗口類的主窗口構造函數中使用的代碼:

public partial class MainWindow : Window 
{ 
    PlayBoard board; 

    public MainWindow() 
    { 
     InitializeComponent(); 

     board = new PlayBoard((int)PlayWindow.Width, (int)PlayWindow.Height); 
     board.playGrid.ShowGridLines = true; 
    } 
} 

回答

0

一個Window需要的內容。您可以將Grid添加到窗口中,方法是將其分配給窗口的Content屬性。

this.Content = board.playGrid; 

看起來您實際上正在嘗試創建所謂的UserControl。 A UserControl是由其他控件組成的自定義控件。你可以閱讀更多關於它here

+0

那就是正確答案!非常感謝你們 – Heisenberker

+0

@ Heisenberker,請upvote /接受答案。 –