首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

Grid控件,自定义行跟列

2012-07-22 
Grid控件,自定义行和列Grid控件定义时,是先定义好“行和列”,然后指定元素跨“几行,几列”。如下:// Create the

Grid控件,自定义行和列
Grid控件定义时,是先定义好“行和列”,然后指定元素跨“几行,几列”。

如下:

// Create the Grid
  Grid myGrid = new Grid();
  myGrid.Width = 350;
  myGrid.Height = 200;
  myGrid.HorizontalAlignment = HorizontalAlignment.Left;
  myGrid.VerticalAlignment = VerticalAlignment.Top;
  myGrid.ShowGridLines = true;
  SolidColorBrush myBrush = new SolidColorBrush(Colors.White);
  myGrid.Background = myBrush;

  // Define the Columns
  ColumnDefinition colDef1 = new ColumnDefinition();
  ColumnDefinition colDef2 = new ColumnDefinition();
  ColumnDefinition colDef3 = new ColumnDefinition();
  myGrid.ColumnDefinitions.Add(colDef1);
  myGrid.ColumnDefinitions.Add(colDef2);
  myGrid.ColumnDefinitions.Add(colDef3);

  // Define the Rows
  RowDefinition rowDef1 = new RowDefinition();
  RowDefinition rowDef2 = new RowDefinition();
  RowDefinition rowDef3 = new RowDefinition();
  RowDefinition rowDef4 = new RowDefinition();
  myGrid.RowDefinitions.Add(rowDef1);
  myGrid.RowDefinitions.Add(rowDef2);
  myGrid.RowDefinitions.Add(rowDef3);
  myGrid.RowDefinitions.Add(rowDef4);

  // Add the first text cell to the Grid
  TextBlock txt1 = new TextBlock();
  txt1.Text = "Expenses for 2007";
  txt1.FontSize = 20;
  txt1.FontWeight = FontWeights.Bold;
  Grid.SetColumnSpan(txt1, 3);
  Grid.SetRow(txt1, 0);
  txt1.HorizontalAlignment = HorizontalAlignment.Center;
  txt1.VerticalAlignment = VerticalAlignment.Center;

问题一:Silverlight下的“Grid”的“RowDefinition()”相当于“asp.net”下“Table”控件的“TableRow”,对吧???

Silverlight下的“Grid”控件有“ColumnDefinition”属性,但是没有“Cell”属性。“ColumnDefinition”它相当于“TableCell”吗???

问题二:不能定义好行,在行中定义列吗???就像asp.net一样,用“TableCell”表示列。如果在Grid下增加一行,然后在该行上增加一个单元格,单元格“跨五列”其中的内容为文本“测试”,应该怎么实现??

[解决办法]
应该不能和Table做一样的看待,虽然看着表像看起来都是行行列列的。但是要知道Grid是一个布局控件,并不是真正的Table 存储数据的,Table中可以指定某个cell但是Grid中就不能这样了。 你需要指定某行,某列,然后指定ColumnSpan 或者RowSpan,垮几行几列。 两者有相似的地方,但是毕竟不同

热点排行