我想动态创建1行网格并向其添加一些TextBlocks,将每个TextBlocks分配/关联到网格中的不同列。我有这个代码:
SolidColorBrush samHagar = new SolidColorBrush(Colors.Red);
System.Windows.Thickness mrg = new Thickness(2);
// Create a Grid
Grid grd = new Grid();
. . . // TODO: add columns
//...add the Grid to the StackPanel
spNufan.Children.Add(grd);
// Create TextBlock and dynamically add it to the Grid
TextBlock tbDynamo = new TextBlock();
tbDynamo.Background = samHagar;
tbDynamo.TextWrapping = TextWrapping.Wrap;
//tbDynamo.Grid.Column = 0; <- no go, Joe!
tbDynamo.Margin = mrg;
tbDynamo.TextAlignment = TextAlignment.Left;
tbDynamo.VerticalAlignment = VerticalAlignment.Center;
tbDynamo.Text = "Whatever";
spNufan.Children.Add(grd);
如何将我的TextBlock(“tbDynamo”)与我的网格(“grd”)联系在一起?
答案 0 :(得分:3)
设置对象的Grid.Column
属性,然后将对象添加到Grid
Grid.SetColumn(tbDynamo, 0);
grd.Children.Add(tbDynamo);
作为旁注,您实际上不需要将其设置为0,因为Grid
中的项目默认为Grid.Row=0
和Grid.Column=0
,除非另有说明。
答案 1 :(得分:1)
应该是
// untested
// spNufan.Children.Add(grd); // already done earlier
grd.Children.Add(tbDynamo);
Grid.SetRow(tbDynamo, i);
但我会先认真研究StackPanel和ListBox。它们似乎比网格更合适 你想如何看待滚动?
答案 2 :(得分:1)
您需要使用Grid.SetColumn(tbDynamo, 0);